Исключение при запуске PSExec на удаленном компьютере
Выполнение этой команды
$processesToSpawn = 3
for($i= 1; $i -le $processesToSpawn; $i++){
psexec \\computername -i 2 -u "username" -p "password" "c:\myapp.exe"
}
Выдает следующую ошибку
psexec :
At C:\mypsScript.ps1:75 char:13
+ psexec \\computername -i 2 -u "username" -p " ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Он выполняет и запускает первую итерацию цикла нормально, и открывает программу, которую я хочу в сеансе RDP, но завершается неудачно сразу после первой итерации.
Редактировать: это происходит только в IDE, запуск сценария из командной строки PS работает нормально. Поэтому считаю этот вопрос решенным.
Кроме того, мне пришлось добавить ключ -d в команду PSExec (не ждите завершения процесса (неинтерактивный).)
1 ответ
Возможно, проблема в том, что psexec не ждет завершения вашего процесса / приложения.
Не могли бы вы попробовать следующий код, чтобы увидеть, работает ли он?
psexec \\computername -i 2 -u "username" -p "password" cmd.exe /c "c:\myapp.exe"
(см. http://forum.sysinternals.com/psexec-finishes-before-child_topic27463.html)
Я считаю, что вызов PSEXEC в вашем сценарии должен заканчиваться /c, я использую сценарий, как показано ниже.
C:\PSTools\psexec /accepteula -u domain\user -p psexec \\10.0.0.xxx cmd.exe /c "E:\teste\psexec\xxxx.bat"
Надеюсь это поможет!