![在远程计算机上运行 PSExec 时出现异常](https://linux22.com/image/671163/%E5%9C%A8%E8%BF%9C%E7%A8%8B%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B8%8A%E8%BF%90%E8%A1%8C%20PSExec%20%E6%97%B6%E5%87%BA%E7%8E%B0%E5%BC%82%E5%B8%B8.png)
运行此命令
$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"
希望这可以帮助!