当我在Windows上时,我使用PsExec在其他Windows机器上启动进程。 我现在有这样的情况,我想从一台Linux机器上做到这一点。
幸运的是, winexe是一个像PsExec一样工作的小程序,仅用于Linux世界。 我没有安装它的问题,我可以开始像cmd.exe进程。
问题是我无法启动Windows用户可见的进程。 如果我启动calc.exe,我可以看到它在任务pipe理器中启动,但没有GUI。
题:
如何启动在Windows机器上实际可见的进程?
如何启动在Windows机器上实际可见的进程?
一个好的开始将是通过在当前login用户的会话中创build进程。 如果只有一个人login,那通常是会话1。 如果有多人login,则可能是会话2或3或27.您必须首先在wtsapi32.dll中运行代码以查找谁连接到了哪个会话。 在现代版本的Windows中,会话0保留用于服务和系统function。
你在第0阶段开始一个进程,因此没人能看到它。
psexec可以启动一个远程进程,让你select一个不同的会话来启动它,但我不知道任何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"