运行此命令
$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 命令行运行脚本运行良好。所以认为这个问题已经解决了。
此外,我必须向 PSExec 命令添加 -d 开关(不要等待进程终止(非交互式)。)
答案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)
答案2
我相信脚本中的 PSEXEC 调用需要以/C,我使用如下脚本。
C:\PSTools\psexec /accepteula -u domain\user -p psexec \\10.0.0.xxx cmd.exe /c "E:\teste\psexec\xxxx.bat"
希望这可以帮助!