先取り!Windows 11 2024 Update(24H2)

第3回

待望の「Sudo for Windows」が投入される「Windows 11 2024 Update」

「UAC」で一時的に権限昇格して指定コマンドを実行する「Sudo for Windows」

 今秋の正式リリースが予定されている「Windows 11 2024 Update」(バージョン 24H2)の新要素を紹介する本連載。第3回となる本稿では、「バージョン 24H2」の開発者向け機能のなかでもっとも注目されているであろう「Sudo for Windows」を紹介する。

Sudo for Windows

 Windowsを利用していると、「ターミナル」(Windows Terminal)を立ち上げてから管理者権限にするのを忘れていたことに気付き、管理者権限で「ターミナル」を起動し直すといったことがよくある。[Ctrl]キーを押しながら新規タブを作成すると管理者権限の「ターミナル」ウィンドウが開くというワザを知っていれば、その面倒はいくらか緩和されるが、Linuxの「Sudo」のように、一時的に管理者ユーザーにスイッチできるコマンドがあれば便利なのにと感じることも多い。

Linuxの「Sudo」のように、一時的に管理者ユーザーにスイッチできるコマンドがあれば便利なのに

 そんなユーザー待望の「Sudo for Windows」が、とうとう「バージョン 24H2」より利用できるようになる。

「ターミナル」を開きなおすことなく、コマンドを管理者権限で実行できる(後述の「新しいウィンドウで表示」モード)

 「Sudo for Windows」は「UACで一時的に権限昇格する」という目的に絞って開発されており、厳密にはLinuxの「Sudo」とは異なる。ユーザーを指定して実行しするといったことはできないが(その場合は、従来からある「RunAs」コマンドを用いる)、その分シンプルで、たとえば管理者権限で「PowerToys」をインストールするコマンドは以下の通りになる。

sudo winget install powertoys -s winget

 初回利用時はシステムで「Sudo」コマンドが有効ではないという旨のメッセージが表示されるが、案内に従って「設定」アプリの[システム]-[開発者向け]ページで「Sudo」コマンドを有効化すると、2回目からは「Sudo」コマンドが利用できるようになる。

初回利用時はシステムで「Sudo」コマンドが有効ではないという旨のメッセージが表示される
案内に従って「設定」アプリの[システム]-[開発者向け]ページで「Sudo」コマンドを有効化
2回目からは「Sudo」コマンドが利用できるようになる

 なお、Windowsの「Sudo」コマンドには、以下の3つのモードがある。下へ行くほどセキュリティが低くなるが、Linuxでの使い勝手には近づいていく。

  • 新しいウィンドウで表示(forceNewWindow、--new-window):管理者権限のウィンドウが新たに開かれる(既定)
  • 入力が無効な場合(disableInput、--disable-input):コマンドを現在のターミナルでインライン(新規ウィンドウなしにその場で)実行するが、入力は受け付けない。オプション名は翻訳ミスと思われる
  • インライン(normal、--inline):コマンドを現在のターミナルでインライン実行する

 既定のモードは「新しいウィンドウで表示」だが、「設定」アプリや「sudo config」コマンドで変更が可能。セキュリティレベルの低いモードにしておけば、よりセキュリティレベルの高いモードを起動オプションで指定することもできる。

Linuxでの使い勝手には近い「インライン」モード。「入力が無効な場合」モードも見た目は同じだが、入力ができないためアプリと対話できない
「sudo config --enabled normal」で「インライン」モードにしても、起動オプションで「新しいウィンドウで表示」などのよりセキュリティの高いモードは使える
その逆は不可

 おすすめは既定の「新しいウィンドウで表示」のままにしておくことだが、「インライン」に変更してセキュリティを高めたいときだけ「sudo --new-window」を使ってもいいかもしれない。