PsExec以可见模式运行远程批处理文件

时间:2012-03-05 12:44:12

标签: psexec

我正在尝试执行以下命令

psexec \\x.x.x.x -d -c -f cmd.exe /c d:\test\hello.bat

它运行正常并提供输出

cmd.exe started on x.x.x.x with process ID 106084.

但是当我登录x.x.x.x时,我可以找到进程ID,但是没有启动可见的批处理文件。它在后台运行。

批处理文件

echo "Hello"
pause

请告诉我如何查看在x.x.x.x上启动的命令窗口

提前致谢

4 个答案:

答案 0 :(得分:1)

Alex K.是对的。具体来说,删除“-d”,告诉PsExec“不要等待进程终止(非交互)”。实际上,如果您运行上面的示例批处理文件(包括“暂停”),cmd进程将继续在远程主机上运行(远程主机的GUI不可见,因为它是通过PSExec完成的),直到您终止该进程。 / p>

答案 1 :(得分:1)

我认为您可以查看当前用户的会话ID并将其作为参数传递给-i例如:

PsExec.exe -s -d -i 2 c:\temp\MyServer MyConsoleApp.exe

要查看当前的会话ID,您可以运行query session

有时,您要开始处理的活动用户的会话ID为2,因此请尝试查找正确的会话ID并将其与-i参数一起使用。

答案 2 :(得分:0)

尝试其中之一:

  1. psexec \\server -u xxx-p xxxx /accepteula  -i 1 -d cmd.exe /K "cd d:\test && call hello.bat"
    
  2. psexec \\server -u xxx -p xxxx /accepteula  -i 1 -d d:\test\hello.bat
    

答案 3 :(得分:0)

PsExec.exe -s -i 2 C:\path_to_exe.exe

这需要检查会话ID变量(-s&-i)