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
exitiexit 0na końcu skryptu Powershell - Dodanie a
< NULna 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.