使用 winexe 启动 Windows 进程

使用 winexe 启动 Windows 进程

当我在 Windows 上时,我使用执行程序在其他 Windows 机器上启动进程。现在我想从 Linux 机器上执行此操作。

幸运的是操作系统,一个类似于 PsExec 的小程序,仅适用于 Linux-World。安装它时我没有遇到任何问题,而且我可以启动 cmd.exe 之类的进程。

问题是我无法启动 Windows 用户可见的进程。如果我启动 calc.exe,我可以在任务管理器中看到它已启动,但没有 GUI。

问题:
如何启动 Windows 机器上实际可见的进程?

答案1

如何启动 Windows 机器上实际可见的进程?

一个好的开始是创建当前登录用户的会话中的进程。如果只有一个人登录,通常是会话 1。如果有多个人登录,可能是会话 2、3 或 27。您必须先运行 wtsapi32.dll 中的代码,以查找谁连接到了哪个会话。在现代版本的 Windows 中,会话 0 是为服务和系统功能保留的。

您正在会话 0 中启动一个进程,因此没有人可以看到它。

psexec 可以启动远程进程并允许您选择不同的会话来启动它,但我不知道 Linux 上是否有类似的程序。我查看了 winexe 的手册页,似乎没有这个选项。

编辑:微软的官方立场是,远程启动交互式进程的安全风险太大,因此他们会抑制你这样做的能力……但如果我们愿意付出努力,我们仍然可以解决这个问题:

schtasks.exe /create /S COMPUTERNAME /RU "NT AUTHORITY\SYSTEM" /RL HIGHEST /SC ONSTART /TN "RemoteProcess" /TR "program.exe \"argument 1\" \"argument 2\""

schtasks.exe /Run /S COMPUTERNAME /I /TN "RemoteProcess"

schtasks.exe /Delete /S COMPUTERNAME /TN "RemoteProcess"

相关内容