Windowsユーザーのコマンドプロンプトを制限する

共有Windows PCでは、特定のユーザーによるコマンド実行を制限したい場合があります。例えば、学校では通常の運用に必要なバッチスクリプトを許可しながら、生徒のアクセスを制限できます。コマンド プロンプトにアクセスできないようにする は対話型のCmd.exeへのアクセスを制御し、バッチファイルのブロックも別に選択できます。

このポリシーで解決できる問題

このポリシーは、管理対象PCの生徒などが対話型コマンドプロンプトで不要なコマンドを実行することの防止に役立ちます。すべての有害な行為や他のシェルをブロックする保証はありません。有効化後に起動すると管理者によって無効にされた旨のメッセージが表示されますが、これは既存のエラーではなく設定の結果です。

手順

  1. 対象ユーザーのグループポリシーエディターを開き、ユーザーの構成 › 管理用テンプレート › システム に移動します。ドメインでは対象ユーザーが属する組織単位にGPOをリンクします。
  2. ポリシーを開き、有効 を選択します。バッチファイルの処理を無効にするか選び、設定を適用します。
  3. ポリシーを更新し、対象ユーザーのアカウントで確認します。元に戻すには 無効 または 未構成 を選択します。

ログオン、ログオフ、起動、終了時のバッチスクリプトを利用するユーザーや、リモートデスクトップサービスを利用するユーザーについては、バッチ処理をブロックしないでください。Cmd.exeのブロックはPower Automateのブラウザー拡張機能の通信を妨げることもあります。

レジストリの設定

対象ユーザーのアカウントでサインインし、regeditでレジストリエディターを開きます。変更前に以下のキーをエクスポートし、値の有無と元のデータを記録します。そのキーで次のDWORD値を作成または編集します。

HKCU\Software\Policies\Microsoft\Windows\System
DisableCMD (REG_DWORD)

対話型Cmd.exeをブロックしバッチ処理を許可するには値を2に、両方をブロックするには1にします。変更を適用し、対象ユーザーで確認します。元に戻すには記録した値を復元し、元々なければこの値だけを削除します。管理ポリシーにより更新時に再適用されることがあります。

基準:Windows 11 バージョン 26H2 のポリシーテンプレート。

参考原文