Svn 即使在路径中也找不到导入模块

Svn 即使在路径中也找不到导入模块,svn,powershell,jenkins,Svn,Powershell,Jenkins,某些环境中未加载我的PowerShell模块,即使它们位于路径中并且脚本手动成功执行 例如,我的powershell脚本包含以下内容: Write-Host $env:PSModulePath Import-Module SSH-Sessions SSH会话模块已放置在C:\Windows\system32\WindowsPowerShell\v1.0\Modules\SSH Sessions中的PSModulePath中。它使用命令powershell.\folder\test.ps1执行

某些环境中未加载我的PowerShell模块,即使它们位于路径中并且脚本手动成功执行

例如,我的powershell脚本包含以下内容:

Write-Host $env:PSModulePath
Import-Module SSH-Sessions
SSH会话模块已放置在
C:\Windows\system32\WindowsPowerShell\v1.0\Modules\SSH Sessions
中的PSModulePath中。它使用命令
powershell.\folder\test.ps1
执行

脚本第一行的输出显示模块路径为:
C:\Windows\system32\windowsupershell\v1.0\Modules\

在命令提示符下执行时,所有操作均按预期进行,但作为subversion提交后钩子或Jenkins构建步骤,此操作失败,并出现以下错误:

Import-Module : The specified module 'SSH-Sessions' was not loaded because no 
valid module file was found in any module directory.

At C:\path\to\workspace\folder\test.ps1
:2 char:14
+ Import-Module <<<<  SSH-Sessions
    + CategoryInfo          : ResourceUnavailable: (SSH-Sessions:String) [Impo 
   rt-Module], FileNotFoundException
    + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Comm 
   ands.ImportModuleCommand
导入模块:未加载指定的模块“SSH会话”,因为没有
在任何模块目录中都找到了有效的模块文件。
位于C:\path\to\workspace\folder\test.ps1
:2字符:14

+导入模块在脚本中添加行
[Environment]::UserName
确认Jenkins构建步骤由系统用户运行,该用户在
C:\Windows\System32\WindowsPowerShell\v1.0\Modules
文件夹中没有读取权限

解决方案:创建一个
C:\PowerShellModules
文件夹,并将其添加到系统变量
PSModulePath


系统用户可以完全控制该文件夹。

首先,您没有对该目录的写入权限。是否可能是无法加载模块的PowerShell实例由另一个用户运行,并且
SSH Sessions
文件夹仅存在于当前用户的
$Env:LocalAppData\VirtualStore
中?当脚本在subversion钩子中运行时,它是否从
写入主机$Env:PSModulePath
中提供任何输出?subversion挂钩以空环境开始,甚至未设置
%PATH%
。请记住,在64位操作系统上,有两个这样的目录c:\windows\system32\windowsPowershell\v1.0\modules和c:\windows\syswow64\windowsPowershell\v1.0\modules。所使用的方法取决于托管应用程序的比特数(通常取决于托管应用程序调用powershell的方式)。