-d
Переключатель, как упомянуто в описании цитируемого в вашем вопросе, заставляет PsExec не ждать нового процесса выхода. Вы не можете получить код выхода или вывод, потому что удаленная служба PsExec просто запускает процесс, сообщает новый идентификатор процесса исходной программе PsExec и перестает заботиться о том, что делает новый процесс. В -d
противном случае весь вывод процесса будет отправлен обратно в программу PsExec, которая все это запустила, и PsExec придется ждать завершения нового процесса, чтобы он мог знать, когда выйти сам.
PsExec не играть хорошо с перенаправлением или PowerShell . Мне удалось получить частичный вывод, запустив начальный экземпляр PowerShell с -inputformat none
параметром, но PsExec странным образом отсекает некоторые выходные данные команды, и я не мог обойти это.
Вы можете попробовать PowerShell Remoting вместо:
Invoke-Command -ComputerName $hostname -Credential (New-Object PSCredential -ArgumentList 'username', (ConvertTo-SecureString 'password' -AsPlainText -Force))