【发布时间】:2013-12-05 01:55:56
【问题描述】:
所以我使用 Jenkins powershell 插件简单地将我构建的包复制到远程共享,解包并调用另一个执行某些特定于应用程序安装的 powershell 脚本(它位于包中)。
现在发生的情况是,构建 powershell 脚本成功执行,直到我在远程共享中执行该脚本,当它执行该行时它只是挂起......
我在远程机器上的执行策略不受限制。
这是我正在做的事情的 sn-p:
#create temporary session with timeout of 2 minutes
$pso = new-pssessionoption -OperationTimeout 120000
$session = New-PSSession -ComputerName $env:remoteServer -sessionOption $pso
Enter-PSSession $session
#Copy distribution to CD server
Copy-Item $src $deployDir -Recurse -Force
#Locate install script
$installScript = Get-Item($deployDir + "*-distribution\*\install.ps1")
write-host ("Executing install script at location " + $installScript)
#Execute install script
& $installScript $env:installArgs -Y
请注意,我是编写 powershell 的新手,所以如果我的脚本是 awf ,我深表歉意:D
有没有人经历过这种行为并且可以指出我错过了什么/做错了什么?
谢谢,
【问题讨论】:
-
您是在 PowerShell 提示符下手动执行上述操作还是脚本的一部分?如果它是脚本的一部分,那么使用 Enter-PSSession 不是您想要使用的。它仅供交互使用。在脚本中,您将使用
Invoke-Command -session $session。 -
它是在 jenkins 构建中运行的脚本的一部分。除了这种不好的做法,它不会阻止我的脚本工作吗?
标签: powershell jenkins powershell-remoting