在組態原則中設定「只允許執行指定程式」後,導致 `gpedit.msc`、`mmc.exe` 自身也被封鎖,無法進入介面解除限制。本文提供七種不依賴 `gpedit.msc` 的恢復方案,覆蓋註冊表、環境變數、DLL 註冊、系統檔修復,總有一招解鎖。
方案一:修改 RestrictToPermittedSnapins (最常見解鎖鍵)
- `Win+R` → `regedit` (若 `regedit` 也被禁用,見方案二)。
- 定位 `HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC`。
- 將 `RestrictToPermittedSnapins` 值設為 `0` (DWORD)。
- 重新登入/重開機。
方案二:修改 Restrict_Run 子鍵 (針對「只允許執行指定程式」)
- `regedit` 定位兩個路徑:
HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC\{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}\Restrict_Run
HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC\{0F6B957E-509E-11D1-A7CC-0000F87571E3}\Restrict_Run
- 將兩處 `Restrict_Run` 值均設為 `0`。
- 重開機。
方案三:修正 MMC 核心 DLL 註冊路徑
- `regedit` 定位 `HKEY_CLASSES_ROOT\CLSID\{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}\InProcServer32`。
- 預設值應為 `%SystemRoot%\System32\gpedit.dll` (或 `mmc.exe` 相關)。若被改為其他路徑或為空,改回正確值。
- 重開機。
方案四:檢查系統環境變數 Path (極易忽略)
- `Win+Break` →「進階」→「環境變數」→「系統變數」→ 找 `Path` → 編輯。
- 確保包含以下三項 (順序不拘):
%SystemRoot%\System32
%SystemRoot%
%SystemRoot%\System32\Wbem
- 缺少任一項會導致 `mmc.exe`、`gpedit.msc`、`sfc.exe` 等系統工具找不到相依 DLL 而啟動失敗。
- 修改後需重新登入生效。
方案五:重新註冊 filemgmt.dll (磁碟管理嵌入式管理單元)
- `Win+R` → `regsvr32 filemgmt.dll` → 確定。
- 提示「DllRegisterServer 成功」即可。此 DLL 缺失/未註冊會導致 MMC 主控台載入失敗。
方案六:補回 framedyn.dll (WMI 核心 DLL)
- 若錯誤訊息提示「找不到 framedyn.dll」,從 `C:\Windows\System32\wbem\framedyn.dll` 複製至 `C:\Windows\System32\`。
- 或確認 `%SystemRoot%\System32\wbem` 在系統 `Path` 變數中 (方案四已涵蓋)。
方案七:安全模式下執行 `sfc /scannow` (終極修復)
- 開機連按 `F8` → 選「安全模式」。
- 命令提示字元 (系統管理員) 執行 `sfc /scannow`。
- 掃描並修復所有受損系統檔案 (含 `gpedit.dll`、`mmc.exe`、`gpedit.msc` 相關資源)。
- 重開機進入正常模式驗證。
萬能 .reg 一鍵修復 (合併方案一、二)
存為 `Fix_GPO_Lock.reg` 雙擊匯入:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\LocalUser\Software\Policies\Microsoft\MMC]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\LocalUser\Software\Policies\Microsoft\MMC\{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}]
"Restrict_Run"=dword:00000000
[HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC]
[-HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC\{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}]
"Restrict_Run"=dword:00000000
"RestrictToPermittedSnapins"=dword:00000000
預防建議
- 設定「只允許執行指定程式」時,務必將 `mmc.exe`、`gpedit.msc`、`regedit.exe`、`cmd.exe`、`powershell.exe` 加入白名單。
- 使用「軟體限制原則」(SRP) 或 AppLocker 替代舊版「只允許執行指定程式」,支援路徑規則、雜湊規則、發佈者憑證規則,更靈活安全。
- 建立「系統管理員專用」帳號,日常使用標準帳號,需調整原則時切換管理員帳號操作。
七大方案層層遞進,從註冊表精準打擊到系統檔全盤修復。遇到 `gpedit.msc` 打不開,請按順序嘗試,通常前三招即可解鎖,避免重灌系統的巨大成本。