Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2437060
  • 博文数量: 293
  • 博客积分: 2660
  • 博客等级: 少校
  • 技术积分: 3632
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 17:50
文章分类

全部博文(293)

文章存档

2015年(13)

2014年(58)

2013年(73)

2012年(25)

2011年(30)

2010年(86)

2009年(8)

分类:

2010-05-16 18:04:58

 
在组策略中,有一种策略是基于注册表的,这些策略就藏在管理模板下面,不管是计算机配置还是用户配置,管理模板下面的策略,都可以在注册表中找到相对应的键值。
把注册表的设置,变成组策略的设置,这是一件多么有趣的事情,不需要再记住冗长的注册表路径,复杂的注册表项,一些呈现在我们面前的都是一个一个界 面友好的配置界面,就像系统自带的那些策略一样,有这种想法是好的,今天我们就来玩一下,如何将这个转变成现实,转好了,以后就有得好玩了。
我们还是先来考虑系统自带的策略,实际上,它们是一些ADM文件组成的,藏在%systemroot%/inf目录下,你到这个目录,搜索 下*.adm,它们就在你的眼前了,system.adm,interes.adm,conf.adm等等,你可以使用记事本打开它。在此,我们首先打开 system.adm,很多内容,看不明白,无从下手,一个字,乱。下面我们就来拆分它,它的结构,结构清楚了,想怎么玩,你说了算。
有一点是潜在的规则,或者说是习惯性的规则,就是我们打开组策略时,都是分层级的,你不可能一下就是计算机配置到达它下面的windows组件节 点,而是由计算机配置—-管理模板—-windows组件,一步一步打开。在ADM文件中,这种分层规则同样适用,这样,我们就完成了ADM文件 在第一阶段的拆分,在system.adm文件中,有以下几个大类:
class machine  class user
category !!administrativeservices  category !!network  category !!printers  category !!windowscomponents
很明显,class machine定义的范围是计算机策略,当再一次出现class user这样的语句时,表明了计算机配置的范围结束,而class user语句同时表示,用户配置的定义现在开始。
至于category这个关键字,也很容易理解,物以类聚,人以群分,组策略中的设置,都是归好了类的,管理模板类别,网络类别,打印机类 别,windows组件类别等等,当然,这些类别下面可能又有更小的细分类,那么它们又将以category开头,逐层展开,直至深入到最后的单条策略。 当然,与class有一点不同的是,category的范围确定,并不是以下一个category开始作为终点,也就是流行的“终点就是起点”之类的话 语,它是以end category这样的语句作为结束而框定其范围的。
这样的category层层相套的游戏,最终的落点还是单条的策略,对于策略的起点,它有自己的关键字,就是policy,终点则是相应的end policy 。
class category policy的三层关系,为我们确定了整个的ADM文件的框架,我们要做的,就是在某处弄个category,或是在某处弄个policy,选准地点,快速插入,于是将注册表项转变为ADM文件也有了快感。
当然,还有更多的细节值得我们去关注的,最起码的一点,就是上面的!!这个符号我们未作解释,这就涉及到ADM文件的另外一个重要的区域, [string]区域。这个无须多作解释,你或许做一下这个操作,就能立刻明白过来,在system.adm文件中找 到!!administrativeservices,复制其中的administrativeservices,然后按住ctrl+F,很明白查找一下 administrativeservices关键字,你可以找到一条administrativeservices=”系统”记录,很明显,这个!!配 合后面的[string]区域信息,作前端的展示之用,我们可以在system.adm文档中找到非常多的!!符号,在[string]中都可以找到相对 应的前端展示说明。
还有一个符号要说明的是;,这个符号没什么意思,就是个注释符,像c语言里面的//符号一样。
最后一点,我们来看一个policy的定义,我们来看下阻止IIS安装的策略
 
————————————————————–
POLICY !!PreventIISInstall
KEYNAME “Software\Policies\Microsoft\Windows NT\IIS”
#if version >= 4
SUPPORTED !!SUPPORTED_WindowsNET
#endif
EXPLAIN !!PreventIISInstall_Help
VALUENAME “PreventIISInstall”
VALUEON NUMERIC 1
VALUEOFF NUMERIC 0
END POLICY
————————————————————
它的几个关键字我们都用红色字体标记出来了,其中的policy  end policy没什么说的,定义策略的范围。
keyname:从上面的规则来看,也很明白,指定策略对应的注册表项路径
supported:这个是定义策略支持的平台,一般策略都会指出它所支持的平台,上面的截图底部就有说明“支持于 至少microsoft windows server 2003”
explain:说明文档,说明这个策略是用来干什么的,后面紧接的!!关连到[string]区域,用你的说话方式写出你的策略说明,有得好玩,有得表现
valuename:该策略修改的注册表键值名称,结合前面的keyname,注册表就定位准了
valueon numeric:指定键值的状态并与组策略的选项关联,当键值为1时,即为策略中的启用,值为0时,即为未配置。当然,这里面还有可能有更多的选项,或是下拉框,或是输入框,具体语法参考链接文档,在此就不一一作列,凑个八九十百字了。
至此,我们也可以依葫芦画瓢,弄个自己的ADM,然后导入到gpedit.msc中,自己把玩一番。在以后工作中碰多了,玩多了,也就熟了。
最后推荐个工具,ADM Template Editor,,微软group policy合作伙伴软件,还算不错,只是需要60美元的价格。
 
CLASS MACHINE
CATEGORY !!category
 CATEGORY !!categoryname
  POLICY !!policynameusb
   KEYNAME "SYSTEM\CurrentControlSet\Services\USBSTOR"
   EXPLAIN !!explaintextusb
     PART !!labeltextusb DROPDOWNLIST REQUIRED
 
       VALUENAME "Start"
       ITEMLIST
        NAME !!Disabled VALUE NUMERIC 3 DEFAULT
        NAME !!Enabled VALUE NUMERIC 4
       END ITEMLIST
     END PART
   END POLICY
  POLICY !!policynamecd
   KEYNAME "SYSTEM\CurrentControlSet\Services\Cdrom"
   EXPLAIN !!explaintextcd
     PART !!labeltextcd DROPDOWNLIST REQUIRED
 
       VALUENAME "Start"
       ITEMLIST
        NAME !!Disabled VALUE NUMERIC 1 DEFAULT
        NAME !!Enabled VALUE NUMERIC 4
       END ITEMLIST
     END PART
   END POLICY
  POLICY !!policynameflpy
   KEYNAME "SYSTEM\CurrentControlSet\Services\Flpydisk"
   EXPLAIN !!explaintextflpy
     PART !!labeltextflpy DROPDOWNLIST REQUIRED
 
       VALUENAME "Start"
       ITEMLIST
        NAME !!Disabled VALUE NUMERIC 3 DEFAULT
        NAME !!Enabled VALUE NUMERIC 4
       END ITEMLIST
     END PART
   END POLICY
  POLICY !!policynamels120
   KEYNAME "SYSTEM\CurrentControlSet\Services\Sfloppy"
   EXPLAIN !!explaintextls120
     PART !!labeltextls120 DROPDOWNLIST REQUIRED
 
       VALUENAME "Start"
       ITEMLIST
        NAME !!Disabled VALUE NUMERIC 3 DEFAULT
        NAME !!Enabled VALUE NUMERIC 4
       END ITEMLIST
     END PART
   END POLICY
 END CATEGORY
END CATEGORY
 
[strings]
category="Custom Policy Settings"
categoryname="Restrict Drives"
policynameusb="Disable USB"
policynamecd="Disable CD-ROM"
policynameflpy="Disable Floppy"
policynamels120="Disable High Capacity Floppy"
explaintextusb="Disables the computers USB ports by disabling the usbstor.sys driver"
explaintextcd="Disables the computers CD-ROM Drive by disabling the cdrom.sys driver"
explaintextflpy="Disables the computers Floppy Drive by disabling the flpydisk.sys driver"
explaintextls120="Disables the computers High Capacity Floppy Drive by disabling the sfloppy.sys driver"
labeltextusb="Disable USB Ports"
labeltextcd="Disable CD-ROM Drive"
labeltextflpy="Disable Floppy Drive"
labeltextls120="Disable High Capacity Floppy Drive"
Enabled="Enabled"
Disabled="Disabled"
 
关于U口的注册表键值
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\WriteProtect
  0:读写
  1:只读
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbstor\start
  3:可用
  4:禁用
通过查看设备列表查看是否有U口插入
参考文档:
 
阅读(1033) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~