Das Skript ist ziemlich einfach. Versucht einfach, eine Reihe von Windows-Diensten zu starten. Die lokale Ausführung funktioniert auf dem Zielcomputer einwandfrei. Das Skript wird auch über PsExec einwandfrei ausgeführt. Es wird nur dann zurückgegeben, wenn ich an meiner CMD-Eingabeaufforderung die Eingabetaste drücke. Dies ist ein Problem, da dies von TeamCity aufgerufen wird und der Agent hängen bleibt und auf die Rückkehr von PsExec wartet.
Ich habe folgendes versucht:
- Hinzufügen eines
exit
undexit 0
am Ende des Powershell-Skripts - Hinzufügen eines
< NUL
am Ende des PsExec-Aufrufs gemäß der Antwort in dieser SF-Frage - Hinzufügen einer
>
Standardumleitung
So rufe ich eigentlich psexec an:
psexec \\target -u domain\username -p password powershell c:\path\script.ps1
Egal was ich mache, es hängt bis ich lokal an der cmd Eingabeaufforderung bin. Nachdem ich die Eingabetaste gedrückt habe, wird folgende Meldung angezeigt:
powershell exited on target with error code 0.