在註冊表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies
下新建一個WriteProtect並設置其值爲dword 1
完整代碼如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies]
"WriteProtect"=dword:00000001
我將其從註冊表中導出,見後面的附件,雙擊導入即可。
設置爲0表示不禁用。接到一個任務,禁止集團內所有電腦的USB接口進行文件拷貝,但不能妨礙打印機、鼠標鍵盤、掃描儀、加密狗等等一切需要USB接口工作的外部設備。
糾結了,這不擺明了讓我蛋疼嗎?
不過,疼歸疼,辦法總是要想滴,世界上沒有辦不到的事,只是你願不願意想辦法。
不羅嗦,開工,首先了解任務的詳細內容:
任務目的:
1、要管制USB存儲設備,一般用戶不能寫不能讀;部分用戶能讀不能寫入USB存儲設備;還有一部分大人們(公司高管)平時不讀不寫,在需要用的時候要能讀能寫!
2、無論使用什麼方式進行管制,不能影響到現在USB打印機、掃描儀、加密狗、鼠標鍵盤等等外部設備的使用。 真會折磨人。
任務範圍:集團內1900臺電腦
任務時間:3周
接下來,就得找實施方案了!
1、方案一:BIOS裏全部關閉USB端口
2、方案二:Client端安裝USB管理軟件,用軟件進行管制,安裝一臺服務器,監控所有電腦的USB動態
3、方案三:從操作系統註冊表下手,批處理執行管理
先說說這三個方案:恕本人愚昧,或許還有很多又好又快捷的方法,但偶當時確實只想到這些,
方案一:最操蛋的方法,端口全關了,什麼USB設備都用不了了,就別提這機那機了,PASS掉,
方案二:所有電腦安裝Client,工作量大,時間根本不夠,再說了,我很介意在用戶端安裝軟件,多一個進程多佔用一部分內存,到時候電腦速度慢了又會有人大呼小叫了。仍然PASS,
第三個,其實這也是俺最喜歡用的手段:批處理!哈哈,就它了。
各位觀衆,看清楚看明白啦,實施過程開始!
1、首先,關閉USB存儲設備的盤符自動分配,打開註冊表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR,將"Start"的值改爲4(禁止自動啓動),默認爲3是自動分配盤符
2、幹掉USB存儲設備的作用文件:進入WINDOWS系統目錄,找到X:\Windows\inf,這裏說明一下,USB存儲設備的作用文件有兩個,分別是usbstor.inf和usbstor.pnf,因爲後續可能需要重新打開USB功能,所以不要刪除它,建議拷貝到其他位置,當然你要暴力一點,刪除它也沒關係,但記得做好備份。
我用兩條批處理指令實現:
copy %Windir%\inf\usbstor.inf %Windir%\usbstor.inf /y >nul
copy %Windir%\inf\usbstor.pnf %Windir%\usbstor.pnf /y >nul
del %Windir%\inf\usbstor.pnf /q/f >nul
del %Windir%\inf\usbstor.inf /q/f >nul
哦不,準確的說是4行指令!
3、然後,禁止將電腦裏的資料拷貝到USB存儲設備,意思是把USB存儲設備設置只讀的,幹成殘廢。
打開註冊表:定位到HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control,在其下新建一個名爲“StorageDevicePolicies”的項,選中它,在右邊的窗格中新建一個名爲“WriteProtect”的DWORD值,並將其數值數據設置爲1
嘿嘿,有了這一條,你就是能用USB存儲設備,也只能單方面讀取數據了,也算是半個殘廢了。
到此,基本上第一個過程基本完成,實現的功能包括:禁止使用USB存儲設備,不影響其他USB外設,就算要用,也把USB存儲設備幹成殘廢(只讀)。
接下來說第二個部分:如何開啓?(部分用戶需要使用USB存儲設備)實際上,逆向操作以上步驟就可以完成開啓,但爲了表達的更完整一些,我還是把過程寫下來
1、找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR,將"Start"的值改爲3
2、恢復USB存儲設備作用文件,還是4行指令:
copy %Windir%\usbstor.inf %Windir%\inf\usbstor.inf /y >nul
copy %Windir%\usbstor.pnf %Windir%\inf\usbstor.pnf /y >nul
del %Windir%\usbstor.pnf /q/f >nul
del %Windir%\usbstor.inf /q/f >nul
完成後,用戶可使用USB存儲設備,但不能往裏面寫入任何內容!你信?不信就試試嘛,俗話說的好:實踐出真知!
不好意思,扯遠了!
這樣,關閉也寫了,開啓也寫了,接下來的事情,你知道的。
批處理代碼,哈哈!
關閉過程:
@echo off
reg add "HKEY_LOCAL_ MACHINESYSTEMCurrentControlSet ControlStorageDevicePolicies“ /v WriteProtect /t reg_dword /d 1 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR" /v Start /t reg_dword /d 4 /f
copy %Windir%\inf\usbstor.inf %Windir%\usbstor.inf /y >nul
copy %Windir%\inf\usbstor.pnf %Windir%\usbstor.pnf /y >nul
del %Windir%\inf\usbstor.pnf /q/f >nul
del %Windir%\inf\usbstor.inf /q/f >nul
@echo on
開啓過程:
@echo off reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR" /v Start /t reg_dword /d 3 /f
copy %Windir%\usbstor.inf %Windir%\inf\usbstor.inf /y >nul
copy %Windir%\usbstor.pnf %Windir%\inf\usbstor.pnf /y >nul
del %Windir%\usbstor.pnf /q/f >nul
del %Windir%\usbstor.inf /q/f >nul
@echo on
將以上代碼保存爲兩個BAT文檔,然後放進x:\Windows\system32\目錄下,比如DisableUSB.bat和EnableUSB.bat
然後直接在運行裏面輸入指令:DisableUSB (關閉)EnableUSB(開啓)
打完收工!
==============================================================================
有朋友問了,你方案是有了,但如何在網內實施?難道需要在每一臺電腦上運行這兩個指令嗎,恐怕也不太現實吧?!
具體實施的過程可以使用以下批處理來完成!
將以下代碼保存爲Scan.Bat,將DisableUSB.bat放到與批處理同一文件夾執行即可。
代碼解釋:掃描局域網中的計算機,掃描範圍包括:192.168.1.1~192.168.8.254,掃描數量共計2032個,掃描到存活的主機後將DisableUSB.bat拷貝到對方機器的C$系統共享目錄(這個得保證是開啓狀態),然後執行。
代碼:
@echo off
echo 操作成功的電腦IP包括:>E:\Success.txt
for /l %%a in (1,1,8) do (
for /l %%b in (1,1,254) do (
ping -n 1 -w 50 192.168.%%a.%%b && net use \\192.168.%%a.%%b "password" /user:administrator && copy DisableUSB.bat \\192.168.%%a.%%b\C$\ Windows\System32\DisableUSB.bat && Start DisableUSB.bat>>E:\Success.txt
)
)
另:經過查詢微軟的知識庫得知,在Windows XP下禁用USB端口有兩方案:
1.如果計算機上尚未安裝 USB 存儲設備,向用戶或組分配對%SystemRoot%\Inf\Usbstor.pnf 和%SystemRoot%\Inf\Usbstor.inf兩個文件的“拒絕”權限,這樣,用戶將無法在計算機上安裝 USB 存儲設備。
2.如果計算機上已經安裝過 USB 存儲設備,(本次就是,要求使用USB鍵盤和鼠標)請將HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor註冊表項中的“Start”值設置爲 4
這樣,當用戶將 USB 存儲設備連接到計算機時,該設備將無法運行
禁止修改註冊表
既然修改註冊表可以禁用USB端口,那麼爲防止用戶自行將註冊表重新改回,可以考慮通過組策略來限制用戶使用註冊表編輯器。點擊“開始→運行”,輸入gpedit.msc 並確定,即可運行程序。在組策略控制檯中,選擇“本地計算機”策略→用戶配置→系統,啓用“禁用註冊表編輯工具”項,該策略是禁止用戶使用 Windows 註冊表編輯器 Regedt32.exe 及 Regedit.exe,管理員用戶也不例外。
啓用該策略後,運行regedit命令時,將出現“註冊表被禁用”的提示
但是禁用註冊表並不能高枕無憂,因爲用註冊表導入的方法仍然可以直接修改註冊表。
新建一個名爲usb.reg的文本文件,輸入以下內容:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\USBSTOR]
"Start"=dword:00000003
雙擊該文件,將信息添加至註冊表中,即可恢復使用USB設備。
要想連這種方法都禁掉,只有通過用戶權限來實現了。將GUS隸屬於USER組,User用戶是沒有權利修改註冊表的,這樣,以GUS用戶登錄後,即便有以上的usb.reg文件,添加至註冊表時也將被拒絕。但是這個還是解決不了操作工利用USB來給手機及相關設備充電,而且也不知道是否能防得住病毒。只有要求工藝和儀表車間進行加強管理。