管理者権限でターミナルを実行しなくてもコマンドを実行できるWindows 11版sudoコマンドの使い方:Tech TIPS
コマンドを実行しようとしたら「管理者でコンソールセッションを……」といったメッセージが表示され、コマンドが実行できなかった経験があるのではないだろうか。Linux用Windowsサブシステム(WSL)を使ったことのある人なら、「Windows 11にもsudoコマンドがあったら」と思うはずだ。実は、Windows 11 2024 Update(バージョン24H2)に待望のsudoコマンドが実装されている。その使い方と注意点を紹介しよう。
対象:Windows 11

「管理者でコンソールセッションを……」にさようなら?
コマンドを実行しようとしたら「管理者でコンソールセッションを……」といったメッセージが表示され、コマンドが実行できなかったという経験は誰にでもあると思う。これを解決するsudoコマンドが、Windows 11 2024 Update(バージョン24H2)に実装された。ただし、既定では無効になっている。そこで、このコマンドを有効にする方法と使用する際の注意点などについて紹介する。
Windowsターミナルを起動し、コマンドを実行しようとしたら「管理者でコンソールセッションを実行しなければなりません」といったメッセージが表示され、コマンドが実行できなかった経験はないだろうか。これは、そのコマンドが、システム設定の変更や高度な管理操作を行うため、「管理者権限」が必要であることを示している。
管理者権限が必要なコマンドの場合、Windowsターミナルを管理者として起動してから実行する必要があった。いちいちWindowsターミナルを起動し直す必要があり、面倒に感じることも多い。
Linux/UNIXでは、管理者権限に昇格させる「sudo」コマンドが用意されており、わざわざターミナルを管理者権限で起動するといった手間は不要となっている。同様の機能がWindows OSにも欲しいと思っている人も多いのではないだろうか。
実は、Windows 11 2024 Update(バージョン24H2)には「Sudo for Windows」としてsudoコマンドが実装されており、「設定」アプリで有効化することで利用可能となっている。そこで、本Tech TIPSではsudoコマンドを有効にする方法を紹介しよう。また、Windows 11 2023 Update(バージョン23H2)のようにsudoコマンドが提供されていない環境でも利用可能な、フリーソフトウェア「gsudo」も取り上げる。
Sudo for Windowsを有効にする
Windows 11 2024 Updateでは、前述の通り、sudoコマンドが実装されている。しかしデフォルトでは無効になっており、sudoコマンドを使うには、「設定」アプリで有効化する必要がある。
それには、「設定」アプリで[システム]−[開発者向け]を選択し、「開発者向け」画面を開く。ここの「sudoの有効化」欄のスイッチを「オン」にすればよい。
これでWindowsターミナルを開き、コマンドの前に「sudo」と入力すれば管理者権限が必要となるコマンドも、管理者権限で起動していないWindowsターミナルで実行できる。この際、管理者権限を持つユーザーアカウントの場合は、パスワードの入力は不要だ。
例えば、システムの修復を試す「sfc /scannow」コマンドの場合、「sudo sfc /scannow」とすると、[ユーザーアカウント制御(UAC)]ダイアログが表示され、[はい]ボタンをクリックすれば、既定では新しいコンソールウィンドウが開いて、そこでシステムスキャンが開始される。

Sudo for Windowsを有効にする(3)
Windowsターミナルを起動し、管理者権限が必要になるコマンドを実行してみる。sudoコマンドを付けないで実行すると、「管理者でコンソールセッションを実行していなければなりません」と表示される。そこで、sudoコマンドを付けて実行してみる。
ただし、一部のPowerShellコマンドレットやアプリケーションのインストール/削除は、正しく機能しないことがあるようだ。このような場合は、従来通り管理者権限でWindowsターミナルを起動して、そこで実行する必要がある。
Sudo for Windowsの構成オプションを変更する
Sudo for Windowsには、管理者権限を必要とするコマンドをどのように実行するかで、以下の「構成オプション」が用意されている。構成オプションは、「設定」アプリの「開発者向け」画面にある「sudoの有効化」欄を展開すると表示される「sudoによるアプリケーションの実行方法を構成する」欄のプルダウンリストで選択可能だ。sudoを有効にすると、この選択を変更できるようになる。

sudoコマンドの制御オプションを選択する
「開発者向け」画面を開き、「sudoの有効化」を展開する。「sudoによるアプリケーションの実行方法を構成する」欄が表示されるので、ここのプルダウンリストで講師オプションを選択する。
項目名 | オプション名 | 説明 |
---|---|---|
新しいウィンドウを使用する | forceNewWindow | Sudo for Windowsの既定の構成オプションで、コマンドが新しいウィンドウで実行される |
入力が無効な場合 | disableInput | 昇格されたプロセスが現在のウィンドウで実行される。入力ハンドルは閉じた状態で、昇格されたプロセスはコンソールウィンドウから入力を受け取れない |
インライン | normal | Linux/UNIXのsudoコマンドの動作に似た構成オプションで、昇格されたプロセスが現在のウィンドウで実行される。また、プロセスは現在のコンソールセッションから入力を受け取ることができる |
「オプション名」は、sudoコマンド自身で構成オプションを変更するのに用いる(後述)。
「新しいウィンドウを使用する」では、上記の画面で示したようにコマンド実行のために新しいコンソールウィンドウが開き、コマンドが終了するとコンソールウィンドウが閉じられてしまう。そのため、出力結果を確認したいようなコマンドの場合には困ることになる。
一方、「入力が無効な場合」や「インライン」は新しいウィンドウが開かれず、sudoを実行したウィンドウに実行結果が表示されるため、コマンドの結果が確認できるというメリットがある。

構成オプションを「インライン」にした場合のsudoコマンドの挙動
構成オプションを「インライン」や入力が無効な場合にすると、sudoコマンドを実行したウィンドウ内で管理者権限に昇格したコマンドが実行される。コマンドが出力するメッセージなども確認可能だ。ただし、悪意のあるプログラムがsudoコマンドで確立した接続を使用して管理者権限でプロセスを実行してしまう危険性があるという点に注意してほしい。
ただ、セキュリティという面で考えると、「入力が無効な場合」や「インライン」は、sudoプロセスによって確立された接続を悪意のあるプロセスが使用して、管理者権限でプロセスを実行してしまう危険性がある点に留意する必要がある。「入力が無効な場合」では、コンソールウィンドウからの入力が受け取れないため、危険性は軽減される。一方、「インライン」の場合は入力も受け付けてしまうため危険性が高い。「インライン」に設定する場合は、セキュリティリスクを考慮してほしい。
コマンドで構成オプションを変更する
前述の通り構成オプションは、「設定」アプリの「開発者向け」画面で変更可能だ。ただ、コマンドの出力結果を確認したいなど、一時的に既定の「新しいウィンドウを使用する」から「入力が無効な場合」に変更したい、といった場合、 いちいち「設定」アプリを起動するのは面倒だろう。
構成オプションは、以下のコマンドを使って変更が可能だ。ただし、注意が必要なのは、このコマンドの実行には管理者権限が必要になるということだ。そのため、管理者権限のないWindowsターミナルで実行する場合は、このコマンドの前に「sudo」を付ける必要がある(「sudo sudo」とする)。
sudo config --enable <オプション名>
<オプション名>は、forceNewWindow/disableInput/normalのいずれか。

コマンドを使って構成オプションを変更する(1)
構成オプションは、「設定」アプリで変更するだけでなく、sudoコマンドを使って変更することも可能だ。sudoコマンドの実行にも管理者権限が必要になるので、「sudo sudo config」とする必要がある。

コマンドを使って構成オプションを変更する(1)
コマンドを使って変更した構成オプションは、「設定」アプリの「開発者向け」画面にも反映される。ただし、「開発者向け」画面が開いた状態では、表示が反映されないので、一度、別の画面を開いてから、この画面に戻る必要がある。
sudoの現在の設定を確認するには、「sudo config」と実行すればよい。有効な場合は現在の動作モード(新しいウィンドウを強制する/入力を無効にする/インライン)が表示される。
「gsudo」を使ってみる
Sudo for Windowsが利用できるのは、Windows 11 2024 Update以降となる。そのため、Windows 11 2023 Update(バージョン23H2)以前を利用している場合は、従来通り、管理者権限でWindowsターミナルを実行してから、管理者権限が必要となるコマンドを実行する必要がある。
実は、Windows 10/11上でLinux/UNIXのsudoコマンドと同様の動作を実現するフリーソフトウェアがGitHubで提供されている。Windows 11 2023 Updateでsudoコマンドを利用したい場合は、このフリーソフトウェアをインストールするという方法もある。
WebブラウザでGitHubの「gerardog/gsudo」ページにある「Release」画面を開き、実行環境に合わせて「Assets」にある「gsudo.setup.arm64.msi(Arm版)」もしくは「gsudo.setup.x64.msi(x64版)」のいずれかをクリックしてダウンロードする(原稿執筆時点の最新版はv2.6.0)。
- gerardog/gsudo(GitHub)
msiファイルを実行するとインストーラーが起動するので、指示に従ってインストールすればよい。インストールが完了すると、Windowsターミナルで「gsudo」コマンドが利用可能になる(インストール後に実行したWindowsターミナルでないと「gsudo」コマンドが使えないので注意)。
管理者権限が必要なコマンドの前に「gsudo」を付けると、Sudo for Windowsと同様、[ユーザーアカウント制御(UAC)]ダイアログが表示されるので、[はい]ボタンをクリックすればコマンドが実行される。gsudoの場合、構成オプションはなく、Sudo for Windowsの「インライン」オプションと同様の動作となっている。Sudo for Windowsの「インライン」オプションと同じようなセキュリティリスクがある点には注意してほしい。
Copyright© Digital Advantage Corp. All Rights Reserved.