答案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"