我有一个PowerShell脚本,该脚本在Windows Server 2016 azure VM上可以正常运行,但是无法从我的构建代理(也是Windows Server 2016 OS azure VM)执行相同的脚本。 由于我无法找出原因,因此无法在PowerShell中记录错误。
执行此脚本是否需要验证或安装在服务器上的任何前提条件?
下面是执行另一个VM上存在的批处理文件的脚本。
$Username = 'ABC'
$Password = 'XYZ'
$pass = ConvertTo-SecureString -AsPlainText $Password -Force
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$pass
try {
Invoke-Command -ComputerName "ServerName" -credential $cred -ErrorAction Stop -ScriptBlock {Invoke-Expression -Command:"cmd.exe /c 'C:\CI\Demo_CI.bat'"
Write-Host "done"
}
} catch {
Write-Host "error"
}
答案 0 :(得分:0)
我相信您在这里面临的是凭据委托问题,您可以尝试在构建代理和目标“ ServerName”中启用CredSSP。要了解有关credssp的更多信息,请参见here,否则,您将不得不在CI中使用psexec。