Moje pytanie jest bardzo podobne do this one, z tą różnicą, że próbuję przechwycić kod powrotu skryptu blokującego za pomocą polecenia Invoke-Command (nie mogę więc użyć opcja -FilePath). Oto mój kod:Jak przechwycić wartość zwracaną blokady ScriptBlocka za pomocą polecenia Inwokacja Powershell'a
Invoke-Command -computername $server {\\fileserver\script.cmd $args} -ArgumentList $args
exit $LASTEXITCODE
Problemem jest to, że Invoke-Command nie uchwycić kodu powrotu script.cmd, więc nie mam pojęcia, czy to nie udało, czy nie. Muszę wiedzieć, czy skrypt script.cmd nie działa.
Próbowałem również używać New-PSSession (co pozwala mi zobaczyć kod powrotu script.cmd na serwerze zdalnym), ale nie mogę znaleźć sposobu, aby przekazać go do mojego wywoływania skryptu Powershell, aby faktycznie Cokolwiek zrobić awaria.
To zadziałało. Nie wiedziałem, że można przekazywać zmienne zdalne z sesji z powrotem do lokalnego skryptu w ten sposób. Dzięki! –
Nie '$ remotelastexitcode = invoke-command -ScriptBlock {cmd/c exit 2; $ lastexitcode} -Session $ remotesession' działa? Ponieważ używasz sesji do wydawania wielu poleceń, prawdopodobnie możesz temu zapobiec. – manojlds
@manojlds tak, będzie również działać przechwytywanie ostatniego wywołania w pierwszym bloku skryptu. –