我正在尝试执行以下命令
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.
但是当我登录 xxxx 时,我可以找到进程 ID,但没有启动可见的批处理文件。它在后台运行。
批处理文件
echo "Hello"
pause
请告诉我如何查看在 xxxx 上启动的命令窗口
提前致谢
我正在尝试执行以下命令
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.
但是当我登录 xxxx 时,我可以找到进程 ID,但没有启动可见的批处理文件。它在后台运行。
批处理文件
echo "Hello"
pause
请告诉我如何查看在 xxxx 上启动的命令窗口
提前致谢
我认为您可以查看当前用户的会话 ID 并将其作为参数传递,-i
例如:
PsExec.exe -s -d -i 2 c:\temp\MyServer MyConsoleApp.exe
要查看当前的会话 ID,您可以运行query session
有时,您要为其启动进程的活动用户的会话 ID 为 2,因此请尝试查找正确的会话 ID 并将其与-i
参数一起使用。
亚历克斯 K. 是正确的。具体来说,删除“-d”,它告诉 PsExec“不要等待进程终止(非交互式)”。事实上,如果您运行上面包含“暂停”的示例批处理文件,cmd 进程将继续在远程主机上运行(远程主机的 GUI 不可见,因为它是通过 PSExec 完成的),直到您终止该进程。
Try one of those:
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
PsExec.exe -s -i 2 C:\path_to_exe.exe
这需要检查会话 ID 变量(-s & -i)