Powershell:通过 CreateProcess() 调用时某些模块不可用
在什么情况下某些 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
某些模块在 32 位版本的 PowerShell 中不可用。在带有 PowerShell v1.0 的 Windows Server 2008 R2 上,这些是:
Some modules are not available in the 32 bit version of PowerShell. On Windows Server 2008 R2 with PowerShell v1.0 these are:
可用模块集由 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 forPSModulePath
and hence you see 2 different sets of modules.Can you check the value in both cases and see if it's different?