Powershell v2.0模块:默认加载路径(用户/ Windows系统文件夹)?

Ang*_*wal 11 powershell powershell-2.0

这是我之前提出的这个问题 - Powershell:在目标系统上安装模块

  • 什么是默认模块加载路径?现在经过这么多天,它已经开始发出这个错误(来自我的C#代码)

    Cannot find path 'C:\Users\angshuman\Documents\WindowsPowerShell\Modules\MyPSModules\MyPsModules.??psd1' because it does not exist.

    从SysWow64文件夹路径一直很好地加载
  • 为什么它突然在用户文件夹而不是Windows文件夹中搜索?

我在Windows 7 64位操作系统上通过C#执行相同的代码

    _ps = PowerShell.Create();   
    _ps.AddScript("Import-Module MyPSModules -PassThru");
    Collection<PSObject> psObjects = _ps.Invoke();
Run Code Online (Sandbox Code Playgroud)

Jos*_*ega 21

如果你想让它们具有更好的可读性,你可以使用它:

$env:PSModulePath.split(';')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Mik*_*ard 20

$ env:psmodulePath是自动变量,它保存用于发现模块的路径.如果未设置,PowerShell将在c:\ windows\system32\WindowsPowerShell\v1.0\modules和MyDocuments\WindowsPowerShell\modules中查找.

因此,默认情况下,它应始终在两个位置查找.

我没有做过多少32-on-64编码,但如果你在64位操作系统上运行32位应用程序,我可以使用SysWow64(而不是System32)看到它.