我正在尝试执行以下命令
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上启动的命令窗口
提前致谢
答案 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)
尝试其中之一:
psexec \\server -u xxx-p xxxx /accepteula -i 1 -d cmd.exe /K "cd d:\test && call hello.bat"
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)