Windows 11のInsider Preview版に「sudo」コマンドが搭載されました。通常のコンソールセッションからでも管理者特権が必要なコマンドを動かせるようになっています。

Introducing Sudo for Windows! - Windows Command Line

https://devblogs.microsoft.com/commandline/introducing-sudo-for-windows/



「sudo」コマンドを使用するには事前に設定の「For developers(開発者向け)」ページにて「Enable sudo(sudoを有効化)」を有効化する必要があります。また、設定ページではsudoの実行方法を「新しいウィンドウで実行する」「入力を無効にして実行する」「インラインで実行する」の3パターンから選択できるとのこと。



初期状態では「新しいウィンドウで実行する」モードになっており、例えば下図のように「sudo netstat -ab」というコマンドを実行すると「Launched netstat in a new window.(新しいウィンドウでnetstatコマンドを実行しました)」と表示されます。



そして管理者特権を持った新たなコンソールウィンドウが開いてプロセスを実行するという仕組み。環境変数は維持されます。



「入力を無効にして実行する」モードではsudoコマンドを入力したウィンドウでプロセスを実行するものの、ユーザーからの入力を受け付けないため最初のコマンド以外の入力が必要な場合には使用できません。

「インライン」モードは動作がLinuxなどの「sudo」コマンドに最も似ており、sudoコマンドを入力したウィンドウでプロセスを実行し、stdin・stdout・stderrの全ての接続が維持されます。

管理者特権を持たないコンソールでsudoを実行する2つのモードでは、内部的に管理者特権付きで新たなsudoが実行されており、2つのsudoをRPC接続して入出力をリダイレクトしているとのこと。こうしてあたかも管理者特権無しのコンソールウィンドウで管理者特権付きのプロセスを実行しているかのように見せています。



MicrosoftはWindows向けsudoのオープンソース化に取り組んでおり、今後数カ月の間に詳細な情報を共有する予定とのこと。また、Windows向けsudoのフィードバックをGitHubリポジトリで募集中と述べられています。