Windowsを使用しているときは、 PsExec を使用して他のWindowsマシンでプロセスを開始します。 Linuxマシンからそれをやりたいというケースがあります。
幸いなことに、 winexe があります。これは、Linux-World専用のPsExecのように機能する小さなプログラムです。インストールに問題はなく、cmd.exeなどのプロセスを開始できます。
問題は、Windowsユーザーに表示されるプロセスを開始できないことです。 calc.exeを起動すると、タスクマネージャーで起動されていることがわかりますが、GUIがありません。
質問:
Windowsマシンに実際に表示されているプロセスを開始するにはどうすればよいですか?
Windowsマシンに実際に表示されているプロセスを開始するにはどうすればよいですか?
良いスタートは、現在ログオンしているユーザーのセッションでプロセスを作成することです。ログオンしている人が1人だけの場合、これは通常セッション1です。複数のユーザーがログオンしている場合は、セッション2、3、または27の可能性があります。最初にwtsapi32.dllでコードを実行して、誰がどのセッションに接続しているかを確認する必要があります。最新バージョンのWindowsでは、セッション0はサービスとシステム機能のために予約されています。
セッション0でプロセスを開始しているため、誰もそれを見ることができません。
psexecはリモートプロセスを開始し、それを開始する別のセッションを選択できるようにすることができますが、Linuxに相当するものはありません。 winexeのmanページを調べましたが、そのオプションがないようです。
編集:Microsoftの公式のスタンスは、対話型プロセスをリモートで起動することはセキュリティリスクが大きすぎるため、それを実行する能力を阻害するというものです...しかし、私たちが喜んでそれを回避することはできます汚れる:
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"