Windows 的設定幾乎都放在 registry (機碼) 中, 像是要啟用 Windows 的某個隱藏功能; 或者 USB port 曾經連接過什麼硬體 (譬如: 相機, 你的手機, USB 光碟機, USB 硬碟/隨身碟, USB 轉 COM port...); 或者上次連結這顆 USB 硬碟/隨身碟的時候是用哪一個磁碟機代號... 之類的, 多如牛毛.

所以你會發現網路上有許多的文章會告訴你遇到什麼樣的怪問題時需要新增這個機碼或者是修改 (或刪除) 那個機碼. 所以我們 (大概) 免不了都需要會操作 regedit.exe (登錄編輯程式) 這個工具程式.

不過這一篇要講的不是怎麼操作 regedit.exe (網路上應該有很多圖文並茂的文章教你怎麼操作 regedit.exe). 我要講的是我們可能遇到有些機碼被鎖住了, 刪不掉也改不了內容, 遇到這種狀況到底要如何是好?

Del A Locked Registry

刪除一個上鎖的機碼

Comfirm Del Registry

確認是否刪除機碼

Error Message of Del a Registry

無法刪除機碼的錯誤訊息

原本 MS 剛開始使用 registry 這個機制的時候, 所有的機碼都是可以自由的新增/修改/刪除的, 但是後來 MS 認為有些機碼刪掉了之後, 系統後續會有操作上的問題 (當機啊或者運作不順暢之類的). 所以後來就加上了上鎖的功能, 以防止使用者不小心把不應該刪掉的機碼給刪掉了或者改成不正確的內容. 例如: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControllSet\Enum\USB 或者是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControllSet\Enum\USBStor 底下的東西就被上鎖了.

遇到這些被鎖住的機碼, 我們即刪不掉也改不了內容, 那到底該如何是好呢? 還好, MS 除了提供 API 給安裝程式運用, 也另外提供了一個工具程式 (PsExec.exe) 可以讓我們暫時把 regedit.exe 的上鎖功能放開.

PsExec.exe這個程式包含在 PsTools 工具套組中, 我們可以由這個 TechNet 的網址 https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx 下載到 PsTools.zip (或者你也可以用 Google 搜尋 "PsTools" 找到下載網址). 下載完成之後,

  1. 請將 ZIP 檔 PsTools.zip 解開到你想放置的路徑中. 例如: D:\PsTools
  2. 請你 '以系統管理員身份執行' cmd.
  3. run CMD (administrator)

    '以系統管理員身份執行' cmd

  4. cmd 視窗中輸入指令 D:\PsTools\psexec -s -i regedit
  5. 或者在 cmd 視窗中一步一步操作:
    • 切換到解開路徑的磁碟機代碼
    • 再切換到你解開的路徑
    • 再輸入指令 .\psexec -s -i regedit
    Privilege Error

    不是 '以系統管理員身份執行' cmd, 結果會存取被拒

接下來, 我們會看到系統開啟了 regedit.exe 的執行視窗, 之前被上鎖的機碼就可以依我們的需求被修改或者刪除了. 不過這只是暫時的, 一但關閉這個 regedit.exe 的執行視窗就會回到有上鎖的狀況.

下次要再解開上鎖的情況, 還是要以相同的方式執行.

文章標籤
創作者介紹
創作者 MagicJackTing 的頭像
MagicJackTing

傑克! 真是太神奇了!

MagicJackTing 發表在 痞客邦 留言(0) 人氣()