我有一个奇怪的问题,每当我尝试远程调用我们的测试服务器时,TeamCity就会挂起.
目前构建步骤是:
- 模板文件
- 编译代码
- 包项目
- 将包发送到测试服务器
- 在测试服务器上解压缩包
现在一切正常,直到最后一个阶段,解压缩远程服务器上的包.现在我想运行一个powershell命令来连接并运行命令然后退出.如果我从远程桌面使用PowerShell,并且提供的用户凭据是正确的,这一切都正常.
正在运行的示例如下:
$password = ConvertTo-SecureString "%PasswordVar%" -AsPlainText -Force
$credentials = New-Object System.Manager.Automation.PsCredential("%UsernameVar%", $password)
etsn -computername %TestServer1Var% -Credential $credentials
Run Code Online (Sandbox Code Playgroud)
当这称为TeamCity只是挂起时,它必须手动停止或它将永远保持在代理上的这一步骤.我试过不使用凭据,我试过不使用etsn并使用完整的命令名称,也尝试了其他远程命令方法,似乎没有任何工作.
那么有没有办法让TeamCity实际运行命令?或者找出导致它无限期地处理这一步骤的原因?
我试图将2个参数传递给PS脚本,该脚本将修补远程计算机上的SQL Server。这是我使用的代码:
$Patcher = "\\remoteShareLocation\SQLpatcher.ps1"
$ver = "SQL2012"
$inst = "NEWINST"
Invoke-Command -ComputerName RMTMACHINE -credential dmn\usrname -ScriptBlock {$Patcher $ver $inst}
Run Code Online (Sandbox Code Playgroud)
这会要求提供凭据,但不会运行,也不会显示任何输出。语法有什么问题吗?还有其他替代cmdlet吗?