PSExec 的交互模式不适用于控制台应用程序

Foc*_*ker 6 windows pstools

我正在尝试使用 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。


Loï*_*HEL 4

我认为你必须使用 -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