Skrypt jest dość prosty. Po prostu próbuje uruchomić kilka usług Windows. Wykonanie lokalne działa poprawnie na komputerze docelowym. Skrypt faktycznie działa dobrze, gdy jest wykonywany za pomocą PsExec, po prostu nigdy nie wraca, dopóki nie naciśniesz klawisza „enter” w wierszu polecenia CMD. Jest to problem, ponieważ jest wywoływany z TeamCity i powoduje, że agent zawiesza się i czeka na powrót PsExec.
Próbowałem następujące:
- Dodanie
exit
iexit 0
na końcu skryptu Powershell - Dodanie a
< NUL
na końcu wywołania PsExec, zgodnie z odpowiedzią na to pytanie SF - Dodanie
>
przekierowania standardowego
Właśnie tak nazywam psexec:
psexec \\target -u domain\username -p password powershell c:\path\script.ps1
Bez względu na to, co robię, zawiesza się, dopóki nie lokalnie w wierszu polecenia cmd. Po wciśnięciu Enter otrzymuję komunikat:
powershell exited on target with error code 0.