笔者在一家区级法院网络中心工作,为确保局域网内的计算机安全,省高院要求全省联网的法院客户端的机器光软驱都要拆除,而且禁止在局域网内使用U盘。我们知道,现在局域网中使用的操作系统绝大多数都是Windows系列,对于Windows 98说,做到这些并不难,因为U盘第一次使用时需要安装相应的驱动程序,拆除了光、软驱后,驱动无法安装,U盘也就无法使用,但对于Windows 2000、Windows XP来说,情况就不同了,用过U盘的人都知道这些操作系统不需要安装驱动,U盘即插即用。

  对于大多数用户来说,这的确很方便,但对于单位有要求的网管来说,就头疼了,现在新买的机器不能总是安装Windows 98吧,毕竟Windows 98就要“下岗”了,但面对U盘,却没有好的办法,也许您会想到可以在BIOS设置里屏蔽USB端口,但这是“宁可错杀一千,不能放过一个”的办法,如果您的单位客户端没有使用USB接口的键盘、鼠标、打印机等设备,那您完全可以采用此方法,不过您以后采购设备的时候要注意了,最好不要采购USB设备,除非咱们网管自己用,哈哈!那有没有简单易行的办法呢?经过一段时间摸索和试验,笔者终于找到了使用修改组策略模板的方法实现此目标。

实现条件

  当然这是有前提条件的,首先,您的局域网必须以域为架构(我们知道Windows 2000、Windows XP自己都自带有组策略编辑器,使用组策略编辑器可单独编辑每台机器的策略,而使用域时,只要用户登录到域,就会自动应用策略,在服务器端修改一次,就可以在全域实现管理目标,如果不采用域模式,您需要每台都要设置组策略,失去了效率,也就没有采用的必要了)。

  其次,客户端必须以域用户的身份登录网络,且不能被赋予客户端本机管理员的权限。客户端操作系统推荐使用Windows 2000和Windows XP,虽然Windows 98也能在域环境下应用组策略,但Windows 2000 Server组策略对Windows 98的支持并不完全,且需要采用两种完全不同的方法分别管理他们,会对您以后的网络管理带来不便。

  特别说明:这里介绍的方法并不适用于Windows 98,只适用于服务器端安装Windows 2000 Server或Windows Server 2003。只要您的网络满足以上条件,我们就可以利用组策略屏蔽U盘,而对于其他USB设备却无任何影响,笔者在单位实施1年多来,效果很好,现将详细方法介绍出来,希望能给众多网管们提供一点借鉴。

基本原理

  组策略实现的原理实际上就是修改注册表,当域用户登录到域上时,系统会对指定的客户端实施组策略,也即修改客户端的注册表,当我们新建了一个组策略时,系统实际上是拷贝了三个模板文件,在您修改组策略时,实际上是在修改这些模板的副本,然后把这些策略应用到指定的客户端中去,然而Windows 2000 Server系统提供的组策略模板中并没有我们想要的屏蔽U盘的策略,但我们可以手动修改系统的模板文件,使组策略模板具备屏蔽U盘的策略,实际上根据其原理,凡是修改注册表能做到的,基本上都可以在域中使用组策略实现。

实现方法
  1、在域控制器上打开Active Directory用户和计算机,找到您要屏蔽U盘的组织单位(Organizational Unit 简称OU),右键查看此组织单位的属性,点击组策略页面,新建一个组策略,命名并保存为“屏蔽U盘”,建好后,双击“屏蔽U盘”(必需先打开一次,否则系统不会拷贝那几个模板文件),在打开的标题为“组策略”的窗口的左边,按以下顺序定位“用户配置-管理模板-Windows组件-Windows资源管理器”,选中Windows资源管理器,在右边的窗口中会显示如图1所示。

Click

  我们可以看到有“隐藏我的电脑中的这些指定的驱动器”和“防止从我的电脑访问驱动器”,双击打开其中一项策略,选择“启用”,下面的下拉框会变亮,单击下拉框,如图2所示,您会发现系统提供了7种限制访问驱动器号的组合,其中也包括了“不限制驱动器”,显然,这些组合不能满足我们的要求(因为U盘的盘符通常是排在最后的,而且现在的硬盘比较大,少则也有三四个分区)。

Click

  2、在域控制器上打开Active Directory 用户和计算机,在刚才我们新建的“屏蔽U盘”策略上单击右键选择查看属性,在如图3所示的位置找到"屏蔽U盘"的组策略的唯一的名称,此名称为一长串数字和字母组成,本例中为{82F86A8E-B345-4DDC-A304-E448F6E900A9},记下此字符串。

20060222113226791.jpg

  3、打开系统盘,定位以{82F86A8E-B345-4DDC-A304-E448F6E900A9}命名的文件夹,此文件夹位于“C:WINNTSYSVOLbaling.com.cnPolicies”下(盘符依赖于您安装的操作系统所在的分区),注意其中baling.com.cn是您的Windows 2000的域名,打开{82F86A8E-B345-4DDC-A304-E448F6E900A9}目录,找到ADM目录下的system.adm文件,此文件是我们在实施组策略的模板文件,是一个纯文本文件,可用记事本打开,找到下面这两段代码:

QUOTE:
   * POLICY !!NoDrives
           EXPLAIN !!NoDrives_Help
         PART !!NoDrivesDropdown DROPDOWNLIST NOSORT REQUIRED
     VALUENAME "NoDrives"
     ITEMLIST
   NAME !!ABOnly           VALUE NUMERIC 3
   NAME !!COnly            VALUE NUMERIC 4
   NAME !!DOnly            VALUE NUMERIC  8
   NAME !!ABConly          VALUE NUMERIC  7
   NAME !!ABCDOnly      VALUE NUMERIC 15
   NAME !!ALLDrives VALUE NUMERIC 67108863 DEFAULT
         ; low 26 bits on (1 bit per drive)
   NAME !!RestNoDrives     VALUE NUMERIC 0
     END ITEMLIST
        END PART   
   END POLICY
   * POLICY !!NoViewOnDrive
           EXPLAIN !!NoViewOnDrive_Help
        PART !!NoDrivesDropdown DROPDOWNLIST NOSORT REQUIRED
     VALUENAME "NoViewOnDrive"
     ITEMLIST
   NAME !!ABOnly           VALUE NUMERIC 3
   NAME !!COnly            VALUE NUMERIC 4
   NAME !!DOnly            VALUE NUMERIC  8
   NAME !!ABConly          VALUE NUMERIC  7
   NAME !!ABCDOnly      VALUE NUMERIC 15
   NAME !!ALLDrives VALUE NUMERIC 67108863 DEFAULT
             ; low 26 bits on (1 bit per drive)
   NAME !!RestNoDrives     VALUE NUMERIC 0
        END ITEMLIST
        END PART   
    END POLICY
  说明:这是两个策略,第一个!!NoDrive,它的作用是在我的电脑中不显示指定的驱动器名,驱动器号代表的所有驱动器不出现在标准的打开对话框上,但是在地址栏中输入盘符或新建一个指向硬盘盘符的快捷方式,用户仍然可以访问该驱动器;第二个!!NoViewOnDrive的作用是阻止用户访问驱动器。可以阻止上述情况的出现,但是仅仅用第二个的话,用户可以看见该驱动器的盘符,但不能访问,一般情况,两个同时使用,可以达到比较理想的效果。

  仔细观察上述代码,不难发现,其中一共有7个NAME项,正好和我们图2下拉框中的一一对应,后面的VALUE NUMERIC按照low 26 bits on (1 bit per drive)的规则取值,low 26 bits on的意思说值为26位的二进制,最多可指定26个驱动器盘符,而1 bit per drive则代表1位代表1个驱动器,举例说A=1,B=2,C=4,D=8,E=16,F=32,G=64,H=128,I=256,由低到高,以此类推。我们可根据我们的需要修改此代码段,假如我们要隐藏A、B、C、F、G、H、I,您可以根据您的需要而定,推荐隐藏的盘符数量应该大于您的现有的盘符数加上您客户端所有的USB接口数(防止有人同时插入几个U盘,呵呵!)。那么我们计算出VALUE NUMERIC的数值A+B+C+F+G+H+I = 1+2+4+32+64+128+256 =487,在两个策略中的
  NAME !!ABCDOnly    VALUE NUMERIC   15
  下插入一行
  NAME !!ABCFGHIOnly   VALUE NUMERIC  487

  随后,移到System.adm文件的末尾,在 ABConly="仅限制驱动器 A、B 和 C" 下面插入一行数据,    ABCFGHIOnly="仅限制驱动器A、B、C、F、G、H、I"
等于号后引号内的说明您可以根据自己的喜好定义,它将会显示在如图2的下拉框中。保存后,打开“屏蔽U盘”策略,定位“用户配置-管理模板-Windows 组件-Windows 资源管理器”,在右边的窗口中双击“隐藏我的电脑中的这些指定的驱动器”或“防止从我的电脑访问驱动器”其中的一个,点击“启用”,再点击下拉框,哈哈,您会发现您多了一个选项(如图4)。

Click

  这时候,您只要在您想屏蔽的用户的组织单位上应用此策略(别忘了这两个策略都需要设置),保存后,包含于该组织单位下的用户登录时,便会发现他的U盘插上后,系统虽能识别并正确安装驱动,但在“我的电脑”中却无法看见,并且通过其他方法也无法访问,包括在地址栏中输入盘符。

  至此,全部设置完毕,让您的客户段使用此OU下的用户登录看看吧!

其他注意事项:

  1、这种方法在您的客户端很多的时候,很方便,您只要确保客户端登录用户属于您已应用此组策略的OU下即可,如果暂时需要允许他使用U盘,那只要把该用户移出此OU,该用户再注销重新登录一下就OK。

  2、需要注意的是,您在OU中建立用户时,用户缺省是属于Domain users组,这对于大多数软件来说没有问题,但会使有些软件无法安装或运行,您可以赋予这些用户在客户端本机的Power user组的权限,即可解决。

  3、注意这种方法同时也屏蔽了您的光驱盘符,光驱也是不能访问的。当然U盘都屏蔽了,我想光驱就更该屏蔽了,呵呵!如果实在要访问,可以在计算机管理中的磁盘管理中赋予光驱一个靠后的盘符即可。

  4、OU是可以嵌套的,客户端组策略的应用是从域根到OU再到子OU,而且是可以覆盖的,除非您选定了“阻止策略继承”。如果您在父OU上设置了屏蔽U盘,但在子OU中又取消了屏蔽,那么客户端的U盘是不会被屏蔽的。

  5、如果您在一个OU中设置了此屏蔽策略,但您又要在其他同级的OU中要开放一些用户的U盘时,您需要重新建一个策略,而不是直接在“屏蔽U盘”的策略上修改成不屏蔽U盘,因为这是个链接到“屏蔽U盘”的策略,您实际修改的是“屏蔽U盘”策略,这会影响到他管理下的所有的OU,他们都将会应用您修改后的策略。

  6、在域中应用组策略时,系统只能对整个域、组织单位实施组策略,不能对单个的用户或者计算机指定组策略,在实际应用的时候,可多建立几个组织单位来管理用户。