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

在远程计算机上运行 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 命令行运行脚本运行良好。所以认为这个问题已经解决了。

此外,我必须向 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"

希望这可以帮助!

相关内容