La sceneggiatura è abbastanza semplice. Cerca semplicemente di avviare un sacco di servizi Windows. L'esecuzione a livello locale funziona correttamente quando sul computer di destinazione. Lo script in realtà funziona bene anche quando fatto tramite PsExec, non ritorna mai fino a quando non premo il tasto "invio" sul mio prompt di CMD. Questo è un problema, perché viene chiamato da TeamCity e fa sospendere l'agente in attesa del ritorno di PsExec.
Ho provato quanto segue:
- Aggiunta di un
exit
eexit 0
alla fine dello script Powershell - Aggiungendo
< NUL
a alla fine della chiamata PsExec, per la risposta in questa domanda SF - Aggiunta di un
>
reindirizzamento stdout
Ecco come sto effettivamente chiamando psexec:
psexec \\target -u domain\username -p password powershell c:\path\script.ps1
Non importa quello che faccio, si blocca fino a quando il localmente sul prompt cmd. Dopo aver premuto Invio, ricevo il messaggio:
powershell exited on target with error code 0.