Исключение при запуске 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"

Надеюсь это поможет!

Другие вопросы по тегам