PowerShell脚本无法在远程服务器上执行批处理文件

时间:2018-10-29 16:10:38

标签: powershell batch-file azure-devops remote-server powershell-v4.0

我有一个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"
}

1 个答案:

答案 0 :(得分:0)

我相信您在这里面临的是凭据委托问题,您可以尝试在构建代理和目标“ ServerName”中启用CredSSP。要了解有关credssp的更多信息,请参见here,否则,您将不得不在CI中使用psexec。