La mia domanda è molto simile a this one, ad eccezione del fatto che sto cercando di acquisire il codice di ritorno di ScriptBlock usando Invoke-Command (quindi non posso usare l'opzione -FilePath). Qui è il mio codice:Come acquisire il valore di ritorno di uno scriptBlock invocato con Inowerske Command di Powershell
Invoke-Command -computername $server {\\fileserver\script.cmd $args} -ArgumentList $args
exit $LASTEXITCODE
Il problema è che Invoke-Command non cattura il codice di ritorno di script.cmd, quindi non ho modo di sapere se non è riuscito o meno. Devo essere in grado di sapere se script.cmd non è riuscito.
Ho provato a utilizzare anche una New-PSSession (che mi consente di vedere il codice di ritorno di script.cmd sul server remoto) ma non riesco a trovare alcun modo per restituirlo allo script Powershell che chiama per fare effettivamente qualcosa il fallimento.
Questo ha funzionato. Non sapevo che potevi passare variabili remote da una sessione allo script locale del genere. Grazie! –
Non '$ remotelastexitcode = invoke-command -ScriptBlock {cmd/c exit 2; $ lastexitcode} -Session $ remotesession' lavoro? Dal momento che stai usando le sessioni per dare più comandi, probabilmente puoi evitarlo. – manojlds
@manojlds sì, anche l'acquisizione di lastexitcode nel primo scriptblock funzionerà. –