WindowsでGNU Screenのような操作がしたい


WindowsでGNU Screenの特にデタッチ操作を行いたいです。  
良いテクニックやツールなどはご存知ありませんか？  
希望としては極力標準機能のみで行いたいのですがMustではありません。

-追記-  
プロセスはバックグランドで残したままウィンドウを閉じたいです。  
cmd.exeを想定していますが、必要とあらばPowershellやVBScriptなど標準ツールを駆使して実現出来ればと思います。




UNIX系OSとWindowsとではプロセスの管理方法が異なります。Windowsではサインインすると[Window
StationとDesktop](https://docs.microsoft.com/en-
us/windows/win32/winstation/about-window-stations-and-
desktops)が作成され、各プロセスはWindow
Stationに属します。ユーザー切り替えやリモートデスクトップで複数ユーザーが操作しても影響を受けないのは、このWindow
Station単位で管理されているためです。

そのため、GNU Screenのようにいわゆるセッションを切り離してプロセスを継続実行させようとしても、サインアウト時にはWindow
Stationに属するプロセスは全て停止させられてしまいます。サービスプロセスのように異なるWindow
Stationでプロセスを起動することもできますが、あまり想定されていない操作になるため、各プログラムが意図しない結果を返す可能性があります。

逆にサインアウトしない前提であれば、ウィンドウを閉じる意味はあまりなく、ウィンドウを最小化すれば済む話となってしまいます。

あまり答えになっていませんが、原理上、実現困難かなと思います。

* * *

なお、PowerShellの場合、[Job](https://docs.microsoft.com/en-
us/powershell/module/microsoft.powershell.core/about/about_jobs?view=powershell-5.1)という機能があり、リモートやバックグラウンドで実行することができます。この中でも[Scheduled
Job](https://docs.microsoft.com/en-
us/powershell/module/psscheduledjob/about/about_scheduled_jobs?view=powershell-5.1)を使うとタスクスケジューラー上で実行させることができるため、サインアウトしても影響を受けることなく実行を継続できます。（もちろん実行結果はJobとして受け取れます。）




UNIX系OSとWindowsとではプロセスの管理方法が異なります。Windowsではサインインすると[Window
StationとDesktop](https://docs.microsoft.com/en-
us/windows/win32/winstation/about-window-stations-and-
desktops)が作成され、各プロセスはWindow
Stationに属します。ユーザー切り替えやリモートデスクトップで複数ユーザーが操作しても影響を受けないのは、このWindow
Station単位で管理されているためです。

そのため、GNU Screenのようにいわゆるセッションを切り離してプロセスを継続実行させようとしても、サインアウト時にはWindow
Stationに属するプロセスは全て停止させられてしまいます。サービスプロセスのように異なるWindow
Stationでプロセスを起動することもできますが、あまり想定されていない操作になるため、各プログラムが意図しない結果を返す可能性があります。

逆にサインアウトしない前提であれば、ウィンドウを閉じる意味はあまりなく、ウィンドウを最小化すれば済む話となってしまいます。

あまり答えになっていませんが、原理上、実現困難かなと思います。

* * *

なお、PowerShellの場合、[Job](https://docs.microsoft.com/en-
us/powershell/module/microsoft.powershell.core/about/about_jobs?view=powershell-5.1)という機能があり、リモートやバックグラウンドで実行することができます。この中でも[Scheduled
Job](https://docs.microsoft.com/en-
us/powershell/module/psscheduledjob/about/about_scheduled_jobs?view=powershell-5.1)を使うとタスクスケジューラー上で実行させることができるため、サインアウトしても影響を受けることなく実行を継続できます。（もちろん実行結果はJobとして受け取れます。）

