在远程计算机上运行PSExec时出现exception

运行这个命令

$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命令(不要等待进程终止(非交互式))。

可能的问题是,psexec不会等待您的stream程/应用程序完成。

你可以尝试下面的代码,看看它是否工作?

 psexec \\computername -i 2 -u "username" -p "password" cmd.exe /c "c:\myapp.exe" 

(请参阅http://forum.sysinternals.com/psexec-finishes-before-child_topic27463.html