(出處:The Will Will Web) 操作登錄項目(Registry)是Windows RD經常做的事情,所以也會累積不少登錄檔(*.reg)隨時可供設定或移除,以下為範例!
匯出登錄機碼
無論如何,在測試修改機碼之前最好還是先備份一下,以一整個 “機碼" 為單位匯出(左側的每個資料夾都叫做機碼或稱子機碼),匯出成 *.reg 檔後,日後若改錯或出問題時,點兩下即可修復機碼。
登錄編輯程式 :: 匯出登錄項目
匯出後的格式像以下這樣,而我就是經常設定這種 *.reg 的檔案幫我更新、刪除一些系統常用機碼設定:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes] "DefaultScope"="{05C72334-11F3-4e9f-8740-98128F52EFB9}" "Version"=dword:00000001 [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes\{xxxx-xxxx}] "DisplayName"="Google" "URL"=http://www.google.com/search?hl=zh-TW&esrch=BetaShortcuts&q={searchTerms}&lr=
新增或更新機碼值
我這陣子處理了許多開發環境的問題,其中幾天前講的 [ 安裝 Visual Studio .NET 2003 開發主機筆記 ] 就有提到如何解決 [HTTP – 401.1 未授權登入失敗] 的問題,這問題基本上只要新增一個機碼就能夠解決,而我就將這個「新增機碼」的動作儲存成 *.reg 檔,以後有其他電腦要設定環境時,直接 Double Click 就可以解決問題。
像這個問題需要在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 機碼中新增一筆 DisableLoopbackCheck 的 DWORD 值,假設檔名我取成 Set-DisableLoopbackCheck.reg 內容如下:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "DisableLoopbackCheck"=dword:00000001
備註:若「機碼」本身不存在,執行 *.reg 的時候會自動建立所有不認識的機碼,無須在特別另外建立。
刪除機碼值
如上一個範例,若要將 DisableLoopbackCheck 的 DWORD 值刪除,就可以用以下語法進行刪除:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"DisableLoopbackCheck"=-
這裡的重點就是設定值的地方要設定成一個減號 ( – ),這就代表著「刪除」的意思。
刪除登錄機碼
跟身除機碼值不同,刪除機碼將會連同機碼、機碼值、與所有子機碼都一併刪除,算是個殺傷力相當大的語法,必須小心使用。
若你想將 Visual Studio 2008 最近開啟的專案(Recent Projects)全部清空的話,可以利用以下 reg 檔直接刪除機碼並重建機碼。
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\ProjectMRUList]
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\ProjectMRUList]
如何執行 .reg檔讓修改得以實現
簡單的方法是直接按兩下執行, 而automation的工程師需要用Script的方式自動去跑, 方式如下:
以Set-DisableLoopbackCheck.reg為例
rem modify registry DisableLoopbackCheck value to dword:00000001
regedit /s Set-DisableLoopbackCheck.reg
TIMEOUT /T 15