Windows NT 4.0系统规则详解 Windows NT 4.0的系统规则是指对NT网络用户和计算机系统的环境和活动的一组限制规定。通过系统规则，系统管理员能够控制网络中有关用户和计算机系统的设置。实际上，系统规则是NT系统注册表的一个子集，系统规则的限制属性在Windows NT系统注册表中都有对应的表项。当用户登录NT域中运行Windows NT操作系统的计算机时，该计算机的NT系统注册表将根据系统规则的限制属性进行修改，然后再开始配置系统。系统策略编辑器是Windows NT系统专门用于创建和维护系统规则的管理工具，而系统规则模板则是创建系统规则时依赖的基础。
系统规则的具体形式
系统规则分为用户规则、用户组规则和计算机规则三种形式。这三种形式的系统规则分别控制着NT网络计算环境的不同方面。
计算机规则用于控制NT域中特定计算机系统的工作环境，控制是否创建用于管理的网络共享目录、是否在登录验证对话框中提供关机功能、是否为长文件名创建DOS方式的8.3文件名等环境属性。
用户规则针对特定的NT域用户，其控制内容包括是否从“开始”菜单中移去公用程序项、选择何种桌面墙纸、按名称限制使用应用程序等用户环境属性和操作行为。
用户组规则的实质是用户规则，只不过控制的对象不是单个用户而是一组域用户。
对于大中型规模的网络而言，用户组规则是管理系统规则最有效的方法。例如，对于对环境要求相同的用户，可以将他们划入一个全局用户组，并建立针对该全局组的组规则，从而可以避免重复地为每个用户建立相同的用户规则。在每次建立新的系统规则文件时，NT自动创建了两个默认系统规则：默认用户规则和默认计算机规则。默认系统规则针对于那些在系统规则文件中没有对应系统规则的用户和计算机。尽管默认系统规则并非必须使用，但在某些情况下，使用默认系统规则是有益的，本文在后面将会提到。
系统策略编辑器
可以通过两种方式启动系统策略编辑器：
其一，在“开始”菜单中选择“程序→管理工具→系统策略编辑器”。
其二，在MS-DOS命令提示符下运行“Poledit.exe”。
系统策略编辑器启动后，出现的是一个空白的初始窗口。
在系统策略编辑器中创建一个系统规则文件，只需选择菜单命令“文件→新建策略”，系统策略编辑器将依据当前安装的系统规则模板，自动创建一个包含一个“默认用户”和一个“默认计算机”图标的系统规则文件，如图1所示。

系统管理员可以通过“编辑”菜单中的“添加用户”、“添加计算机”和“添加组”命令，在系统规则文件中加入新的用户规则、计算机规则和用户组规则。
在添加新的系统规则时，系统将弹出一个对话框，要求系统管理员提供欲添加的对象名称，图2所示的是“添加组”对话框。

系统管理员可以直接在文本框中输入对象名称，也可以通过“浏览”按钮，从当前可用的对象列表中选择欲添加的对象。新系统规则添加后，系统策略编辑器主屏幕上将出现相应的图标。
使用鼠标双击系统规则图标，可以打开相应的系统规则属性页，图3所示为默认的用户规则属性页。
属性页窗口分为上下两个部分:上部分列举了所有可以由系统管理员设置的系统规则限制属性，下部分显示的内容根据选择的限制属性项的不同而不同，有时是空白，有时是有关限制属性项的简要说明，有时是系统要求系统管理员在设置限制属性时必须提供的更详细的信息，在图3中，系统要求系统管理员输入用做墙纸的位图文件的全路径名称并选择位图的显示方式。

系统规则属性页的复选框有三种状态：选中、清除和灰色。复选框的初始状态是灰色。选中状态表示NT将把该限制属性复制到注册表中或者使用它改写注册表中相应的表项，清除状态表示NT将从注册表中删除与该限制属性对应的表项及其所属数值项，灰色状态表示NT将维持与该限制属性对应的表项的原有设置。如果希望某个限制属性不影响对象，可以将它置于灰色状态，那么,当NT在处理系统规则文件时将忽略该限制属性，从而加快处理过程。
使用系统策略编辑器的“选项→组优先级”命令，可以为用户组规则定义优先级。在一个包含多个用户组规则并且有用户同时隶属于多个用户组的NT域中，可以通过为用户组规则定义优先级来简化系统规则的管理工作。
完成了系统规则的创建工作之后，必须将其保存到名为NTConfig.pol的文件中，并且将该文件存放在主域控制器的Netlogon共享目录中，否则，系统规则将不会发挥作用。Netlogon共享目录位于Windows根目录下的System32\Repl\Import\Scripts。在保存系统规则文件时，需要手动地指明正确的路径，NT并不会自动地将系统规则文件存入正确的路径中。
有的系统管理员喜欢使用自定义系统规则。不过，如果不使用默认系统规则，可能会留下安全隐患。例如，当用户从别人的计算机上登录时，他就可以有意或无意地回避针对他自己的计算机的计算机规则对他的约束。为了防止类似情况的发生，提高系统的安全性，建议在创建系统规则时保留并设置默认系统规则。
系统规则的工作原理
当用户在NT网络中任何一台运行Windows NT 4.0的计算机上登录时，本地操作系统将在主域控制器的Netlogon共享目录中查看是否存在NTConfig.pol文件。如果该文件不存在，则该NT网络不存在系统规则。如果该文件存在，本地操作系统将依次在该文件中查找相关的用户、用户组和计算机规则，并根据查找结果决定是否改写和如何改写本地操作系统的注册表。
每一个系统规则的实施过程都可以分为下载系统规则和改写注册表两个阶段。我们先来看看本地操作系统在NTConfig.pol中查找并下载相关系统规则的过程：
（1）查看是否存在与当前登录用户名相符的用户规则。如果存在，则下载该用户规则。如果不存在，则查看是否存在包含当前用户的用户组规则。如果用户组规则存在，则下载该用户组规则。如果存在多个包含当前用户的用户组规则，则按照事先设定的组优先级依次下载。组优先级低的组规则将先于组优先级高的组规则下载。
（2）如果既不存在当前用户的用户规则，又不存在包含当前用户的用户组规则，则查看是否存在默认用户规则。如果存在，则下载默认用户规则。否则，当前登录用户将不受系统规则约束。
（3）查看是否存在与当前用户所登录的计算机名相符的计算机规则。如果存在，则下载该计算机规则。如果不存在，则查看是否存在默认计算机规则。如果存在，则下载默认计算机规则。否则，当前用户使用的计算机将不受系统规则的约束。
系统规则下载到本地计算机后，本地NT操作系统将使用其中的限制属性改写注册表中相应的部分，即：使用用户规则和用户组规则的限制属性改写注册表的HKEY_CURRENT_USER部分，使用计算机规则的限制属性改写注册表的HKEY_CURRENT_ MACHINE部分。
系统规则模板
系统规则模板是系统策略编辑器创建新系统规则的基础，这是因为系统规则模板按照类别定义了系统规则的设置属性。用户策略编辑器中显示的“书籍”图标（限制属性的分类）以及复选框（限制属性项）等都是由系统规则模板定义的。
在安装用户策略编辑器时，系统自动安装了两个系统规则模板文件，即：Common.adm和Winnt.adm。这两个模板文件存放在Windows根目录下的Inf文件夹中，每当创建新的系统规则时，这两个模板文件都将被用户策略编辑器作为缺省系统规则模板加载。一般情况下，对工作站桌面安全要求不高的NT网络，仅使用缺省系统规则模板就足够了。然而，对于有较高桌面安全要求的NT网络，系统管理员就需要修改缺省系统规则模板或重新编写系统规则模板，才能满足管理要求。
系统规则模板存放在一个文本文件中，用类似高级编程语言的代码编写。其代码由各种关键字、变量以及设置项和项值组成。无论是修改缺省系统规则模板，还是编写定制系统规则模板，系统管理员都应该熟悉和掌握系统规则模板代码的语法。
系统规则模板代码的一个重要元素是关键字。在模板文件中，所有关键字都由大写字母组成。一般情况下，模板文件的第一行是关键字CLASS MACHINE，它表示自此以下模板文件的内容对应于系统注册表的HKEY_LOCAL_MACHINE部分。与该关键字相似，模板文件中还有一个关键字CLASS USER，表示其后的内容对应于系统注册表的HKEY_LOCAL_USER部分。关键字CATEGORY用于定义类。类的作用仅仅是为了按类别组织划分系统规则限制属性，以便使用者能够方便地找到需要的限制属性。CATEGORY既可以包含系统规则限制属性，也可以嵌套其它的CATEGORY关键字，在用户策略编辑器中的体现就是展开“书籍”图标中既可以有复选框，也可以有其它“书籍”图标。关键字POLICY用于定义系统规则限制属性项，KEYNAME用于指定系统规则限制属性对应的注册表项;VALUENAME则用于指定该注册表项中的数值项(如：VALUENAME"UpdateMode"指定注册表项\System\CurrentControlSet\Control\Update的UpdateMode数值项);PART用于定义系统规则限制属性的设置方式(如语句：PART!!DisplayErrors CHECKBOX定义了以复选框方式设置由!!DisplayErrors变量值命名的系统规则限制属性);END用于说明一个关键字定义的结束(例如，当编写完成了某个由CATEGORY定义的类的所有内容时，必须在结尾加上END CATEGORY，然后才能定义下一个类)。
系统规则模板代码的另一个重要元素是变量。在模板文件中，所有变量都是以“！！”为首的，如：!!Network、!!Update等。在模板文件的结尾，有一个[Strings]节，其中定义了所有变量值。其定义形式类似于编程语言的赋值语句，如：
Network="网络"
Update="系统规则更新"
Windows NT 4.0的系统规则模板具有迭加功能，即可以为系统策略编辑器指定多个系统规则模板，系统策略编辑器将把这些系统规则模板定义的系统规则限制属性迭加在一起，形成一个完整的系统规则模板。系统规则模板的迭加功能大大增加了创建系统规则的灵活性。系统管理员可以通过添加系统规则模板，方便地为具有特殊需求的用户和计算机创建特殊的系统规则。为系统策略编辑器添加系统规则模板，可在创建新系统规则之前，使用“选项→策略模板”菜单命令来完成。
熟悉和掌握如何编写系统规则模板的最佳方法是，仔细阅读Windows NT提供的两个缺省系统规则模板文件，并观察其中的代码在系统规则的创建过程中的作用。
（吴 勇）