禁用USB总集

 

在注册表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来给手机及相关设备充电,而且也不知道是否能防得住病毒。只有要求工艺和仪表车间进行加强管理

转载于:http://dnswan.blog.51cto.com/1929050/971921

posted @ 2012-08-29 14:11  破军  阅读(484)  评论(0编辑  收藏  举报