如何在不安装管理单元的情况下将 PSCmdlet 或 PSSnapin 添加到托管 Powershell 运行时

发布于 2024-12-10 11:48:33 字数 285 浏览 1 评论 0原文

我的场景如下。

  • 我正在通过 Web UI 上传我的 dll。
  • 我在 ASP.NET 应用程序中托管 PowerShell 运行空间。
  • 我 DLL 包含 PSCmdlet 并且想要使用它。
  • PSCmdlet 只需要在托管运行空间内可访问,而不需要在 用于任何外部场景。
  • 该应用程序无法访问 Windows 注册表,因为它以有限的权限运行,因此我无法安装 PsSnapin。

我是否可以在不完成安装过程的情况下使用命令行开关?

My scenario is as follows.

  • I am uploading my dll through web UI.
  • I am hosting a PowerShell runspace in an ASP.NET application.
  • I The DLL contains the PSCmdlet and would like to make use of it.
  • The PSCmdlet only needs to be accessible within the hosted runspace and does not need to be
    used in any external scenario.
  • The application does not have access to the windows registry as it runs with limited privileges, so I cannot install the PsSnapin.

Is it possible for me to use the commandlet without going through the installation process?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

多孤肩上扛 2024-12-17 11:48:33

如果您的用例很简单,那么这是可能的。请参阅以下问题:托管 PowerShell 无法在同一程序集中看到 Cmdlet。那里的几个答案提供了不同的方法,选择一种效果更好或更喜欢的方法。

If your use case is straightforward then it is possible. Please see these question: Hosted PowerShell cannot see Cmdlets in the same Assembly. Several answers there provide different ways, choose one that works better or you like more.

開玄 2024-12-17 11:48:33

如果您使用 PowerShell V2,则可以使用未注册的管理单元作为二进制模块。

Import-Module ‹path-to-dll›

添加 -passthru 以获取描述模块的 PSModuleInfo 引用。

If you use PowerShell V2 you can use an unregistered snapin as a binary module.

Import-Module ‹path-to-dll›

add a -passthru to get the PSModuleInfo reference which describes the module.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文