Powershell:通过 CreateProcess() 调用时某些模块不可用

发布于 2024-09-30 03:29:36 字数 257 浏览 4 评论 0原文

在什么情况下某些 PowerShell 模块会变得不可用?

创建进程时,

当我使用 CreateProcess() 和命令行powershell -Command "Get-Module -ListAvailable"

我没有获得执行以下命令时获得的所有模块命令提示符中的相同语句。

我必须在 STARTUPINFO 或 PROCESS_INFORMATION 结构中设置任何字段吗?

Under what conditions do some PowerShell modules become unavailable?

When I create a process with CreateProcess() and the command line

powershell -Command "Get-Module -ListAvailable"

I don't get all the modules I get when executing the same statement from a command prompt.

Are there any fields I have to set inside the STARTUPINFO or PROCESS_INFORMATION structs?

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

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

发布评论

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

评论(2

分开我的手 2024-10-07 03:29:36

某些模块在 32 位版本的 PowerShell 中不可用。在带有 PowerShell v1.0 的 Windows Server 2008 R2 上,这些是:

  • ADRMS
  • AppLocker
  • BestPractices
  • ServerManager

Some modules are not available in the 32 bit version of PowerShell. On Windows Server 2008 R2 with PowerShell v1.0 these are:

  • ADRMS
  • AppLocker
  • BestPractices
  • ServerManager
◇流星雨 2024-10-07 03:29:36

可用模块集由 PSModulePath 环境变量控制。这里讨论的两个进程可能有 2 个不同的 PSModulePath 值,因此您会看到 2 组不同的模块。

您可以检查两种情况下的值并看看它是否不同吗?

The set of modules available is controlled by the PSModulePath environment variable. It's possible that the two processes in question here have 2 different values for PSModulePath and hence you see 2 different sets of modules.

Can you check the value in both cases and see if it's different?

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