適用場景
- 共用電腦/網咖/教學機房:防止使用者執行危險指令。
- 終端機/自助服務機:鎖定僅允許特定應用程式執行。
- 安全性基線強化:縮減攻擊面 (阻擋批次檔、PowerShell 呼叫 cmd)。
操作步驟 (需專業版/企業版/旗艦版)
- 按 Win + R → 輸入
gpedit.msc → Enter 開啟「本機群組原則編輯器」。
- 依序展開:
使用者設定 → 系統管理範本 → 系統。
- 右側清單找到 「禁止存取命令提示字元」 → 雙擊開啟屬性。
- 選擇 「已啟用」 → 確定。
- 生效方式:
• 立即生效:執行 gpupdate /force。
• 登出/重新登入後生效。
效果驗證
- 使用者嘗試執行 `cmd.exe` 或 `command.com` → 彈出「這項作業已被取消,因為其受到您電腦的限制...」訊息並拒絕執行。
- 批次檔 `.bat`、`.cmd` 雙擊執行同樣被攔截。
- 「執行」對話框 (Win+R) 輸入 `cmd` 亦無效。
注意事項與副作用
- 系統管理員同樣受限:此原則套用至「使用者設定」,若管理員帳號也在該 OU/本機原則範圍內,管理員自己也會被封鎖。
解決:將原則設定於特定 OU (僅含一般使用者),或使用「循環處理模式」區分電腦/使用者設定。
- PowerShell 不受此原則限制:若需同時封鎖 PowerShell,請同步啟用「禁止存取 Windows PowerShell」原則 (同目錄下)。
- 部分安裝程式/修補程式需呼叫 cmd:安裝軟體前建議暫時停用此原則 (設為「未設定」) 並 `gpupdate /force`。
- 家用版無 gpedit.msc:可匯入對應登錄值:
HKCU\Software\Policies\Microsoft\Windows\System\DisableCMD = 1 (DWORD)
或使用 Policy Plus 圖形化設定。
結語
透過群組原則「禁止存取命令提示字元」可有效封鎖 `cmd.exe`/`command.com`/批次檔執行,是共用/公開/高安全環境的基礎鎖定措施。部署時務必規劃管理員例外機制,並搭配 PowerShell 封鎖、AppLocker/SRP 應用程式控制,構建多層次執行防護。