我正在尝试使用 PSExec 在交互式状态下启动远程计算机上的控制台应用程序。当我运行这样的事情时:
PsExec.exe -s -d -i 1 \\MyServer notepad.exe
Run Code Online (Sandbox Code Playgroud)
它启动记事本就好了。如果我然后运行这个:
PsExec.exe -s -d -i 1 \\MyServer C:\Temp\MyConsoleApp.exe
Run Code Online (Sandbox Code Playgroud)
它启动命令窗口,但据我所知没有执行任何操作。例如,当我在本地运行控制台应用程序时,它每 5 秒显示一次“心跳”,但是当我远程运行它时,命令窗口中不会显示任何内容。.exe 确实在任务管理器中显示为进程。有任何想法吗?
小智 5
如果没有出现窗口,则可能是因为调用 psexec 时的会话 ID 错误。
它被设置为 -d 标志后面的数字。
您想要的 ID 号将出现在 taskmgr.exe 的“用户”选项卡上列表的“ID”列中。通常为 1,但也可能不是。省略该数字也可能导致不出现窗口。
例如,我跑了:
psexec -i -d -s c:\windows\regedit.exe
Run Code Online (Sandbox Code Playgroud)
(如其他地方所建议的)虽然我收到一条消息:“... regedit.exe 已启动...,进程 ID ...”,但没有出现窗口,即使我可以在 taskmgr.exe 中看到它正在运行指定的进程 ID。
然而,当我跑时:
psexec -s -d -i 1 regedit.exe
Run Code Online (Sandbox Code Playgroud)
窗口确实出现了。正好我的ID是1。
我认为你必须使用 -w 设置工作目录:
PsExec.exe -s -d -i 1 -w c:\temp \\MyServer MyConsoleApp.exe
Run Code Online (Sandbox Code Playgroud)
http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
| 归档时间: |
|
| 查看次数: |
25694 次 |
| 最近记录: |