PowerShell Script не может выполнить командный файл на удаленном сервере - PullRequest
0 голосов
/ 29 октября 2018

У меня есть сценарий PowerShell, который отлично работает на виртуальной машине Azure с Windows Server 2016, но не может выполнить тот же сценарий из моего агента сборки, который также является виртуальной машиной Azure с ОС Windows Server 2016. В PowerShell не регистрируются ошибки, из-за которых я не могу понять, в чем причины?

Существуют ли какие-либо предварительные условия, которые мне нужно проверить или установить на сервере для выполнения этого сценария?

Ниже приведен скрипт, выполняющий пакетный файл, присутствующий на другой виртуальной машине.

$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 голосов
/ 29 октября 2018

Я полагаю, что вы сталкиваетесь здесь с проблемой делегирования учетных данных. Вы можете попробовать включить CredSSP в своем агенте сборки и целевом "ServerName". Чтобы узнать больше о credssp, см. здесь , иначе вам придется использовать psexec в CI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...