2007/07/26

開始實驗鎖 usb 的登錄檔

主要是把
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR]
"Start"=dword:00000004

設到登錄檔中

經過顯金和我的測試,直接執行 disable_USB.bat ,的確是可以鎖 usb 儲存裝置

--disable_usb.bat---
regedit /s Disusbstor.reg
xcacls.exe %systemroot%\inf\usbstor.inf /d everyone:r /y
xcacls.exe %systemroot%\inf\usbstor.pnf /d everyone:r /y
---------------------

但經過我的實驗,直接把 disable_USB.bat 放到 gpo 依使用者登入時執行,並未成功(猜測是 disable_USB.bat 的路徑問題);但此問題一直無法解決,於是嘗試以 wsh 撰寫程式,直接以 disable_USB.vbs 將上述的登錄值寫入系統

單獨將 disable_USB.vbs 放到 gpo 使用者/登入,是不行的,會有錯誤訊息:大意是說鍵值的路徑無效
但是以 admins 身份登入即可正常執行並具有鎖 usb 的效果,由此可知是權限的問題

使用 regedt32.exe 修改該鍵值的安全性,並加入 gpo 電腦設定/安全性/登錄,讓每一台電腦一開機就套用這個 gpo 個的登錄;這樣 disable_USB.vbs 就可以順利執行

-- disable_USB.vbs --
' VBScript.

Set Sh = CreateObject("WScript.Shell")

key = "HKEY_LOCAL_MACHINE\"

Sh.RegWrite key & "SYSTEM\CurrentControlSet\Services\USBSTOR\start", 4, "REG_DWORD"
---------------------

為了避免有權限的人知道怎麼改登錄檔,因此必須再加一道鎖,除 domain admins 外,所有人禁止使用登錄檔工具

禁用登錄檔工具有兩個方法,一是系統範本/系統/禁用編輯工具,二是同一個地方的禁用軟體(把程式名稱填進去:regedit.exe regedt32.exe);第二個方法有一個缺點:使用者要是把檔名改了,gpo 就鎖不到,因此用第一個方法

測試結果,一如所想

沒有留言: