组策略对于系统管理员来说至关重要,它的威力不容小觑。组策略可以保障系统的网络安全,同样,在组策略出现问题时,我们该怎样排错呢?下文给出了详细的描述。
组策略是一项复杂的技术,它的正常运作靠的是多个随时可能会发生变化的部分之间的协同工作。通常来说,当你测试某个组策略时,与组策略有关的问题就会出现。很少的时候,这些问题之间看起来没有什么关联,也不容易发现组策略与这些问题有关。不管原因是什么,当组策略出问题时,你通常应该检查多个地方以找到解决方案。
要成功地解决组策略相关的问题,关键是知道去哪儿查找故障。组策略的执行包括两个阶段,因此要找出问题的所在,你可以从两个主要区域开始。
第一阶段:是核心执行阶段,Windows通过查询活动目录(AD)来找出需要将哪个组策略对象(GPO)应用到当前计算机或用户,哪个组策略区域(如,管理模板、软件安装)需要被执行,以及计算机或用户在上一次应用策略之后该组策略是否发生过改变。核心执行阶段需要基础结构中的几个部分协同工作,包括DNS、AD、文件复制服务(FRS)和网络。在核心执行阶段,任何一个部分如果出了问题,整个组策略的执行都会出现问题。
执行过程的第二阶段:包括客户端扩展,像安全性设置、管理模板和文件夹重定向。客户端扩展通过执行和应用在核心执行阶段中找到的组策略中的设置来实现组策略。通常来说,如果问题发生在客户端扩展执行阶段,则问题可以限定在一个客户端扩展之中——甚至限定在通过客户端扩展来执行的组策略——以及计划在后面继续执行的其它组策略。要找出客户端扩展中存在的问题不是一件容易的事情,因为每一个实现组策略的扩展在实施任务时采用的方式都有些不同,生成日志的级别也不同。
要成功地排除故障,两个执行阶段中生成的日志非常关键。日志文件通常能够解释那些不太容易发现的问题。如果组策略组结果集(RSoP)报告和基础结构组件检查都不能给出解决方法,日志中有时会包含一些重要的错误信息,明确地指出问题的所在。
没有办法通过一项设置来启动所有的组策略日志。你可以通过修改注册表键值来手工启动每个日志。表1列出了用于组策略的日志和相应的注册表键值。另外,你也可以用我编写的工具(名为gpolog.adm的管理模板文件)来启动任何一个或者所有与组策略相关的日志,这个方便快捷的工具是免费的,你可以通过以下网址下载:
“http://www.gpoguy.com/tools.htm”。不管问题出现在核心执行阶段还是在客户端扩展阶段,按照我提供的步骤来操作都会有助于故障的排除。
表1:组策略日志
描述注册表键值
在应用程序事件日志中记录详细的核心执行日志
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Diagnostics\RunDiagnosticLoggingGroupPolicy=REG_DWORD0x1
在应用程序事件日志中记录详细的软件安装日志
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Diagnostics\RunDiagnosticLoggingAppDeploy=REG_DWORD0x1
在应用程序事件日志中记录详细的Microsoft远程信息服务(RIS)选项日志
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Diagnostics\RunDiagnosticLoggingIntellimirror=REG_DWORD0x1
详细的用户环境日志(写入%windir%\debug\usermode\userenv.log)
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\UserEnvDebugLevel=REG_DWORD0x10002
详细的文件夹重定向客户端扩展日志(写入%windir%\Debug\UserMode\fdeploy.log)
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Diagnostics\FDeployDebugLevel=REG_DWORD0x0F
详细的软件安装客户端扩展日志(写入%windir%\Debug\UserMode\appmgmt.log)
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Diagnostics\AppmgmtDebugLevel=REG_DWORD0x9B
详细的安全性客户端扩展日志(写入%windir%\security\logs\winlogon.log)
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\GPExtensions\{827D319E-6EAC-11D2-A4EA-00C04F79F83A}\ExtensionDebugLevel=REG_DWORD0x02
步骤1:复查最近的执行周期
要判断一台工作站或服务器为什么存在组策略执行问题的第一步是找出最后一个组策略执行周期内都发生了什么事情。要完成这一任务,你需要在WindowsServer2003或WindowsXP中安装使用组策略管理控制台(GPMC)或Windows2000所带的gpresult.exe命令行工具。
组策略管理控制台提供了组策略结果向导,它可以查询WindowsServer2003和WindowsXP系统并生成报告,指出在最后一个执行周期中在该系统中的指定用户身上都发生了什么事情。你也可以在命令行方式下运行gpresult.exe,得到的数据与组策略结果向导所提供的内容是相同的。如果你用的是Windows2000系统且使用的是MicrosoftWindows2000资源包中的gpresult.exe,你只能得到WindowsServer2003和WindowsXP所能提供的数据的一个子集。因为Windows2000不包含组策略组结果集,它只存在于后续版本的操作系统。
要运行组策略结果向导,启动组策略管理控制台,右键点击组策略结果节点,然后运行向导。向导会问你在本地计算机还是远程计算机上收集信息。
指定了计算机之后,如果你想收集特定用户的策略设置,可以选择一个已经登录到该计算机的用户账户。向导会访问你选定的计算机,使用Windows管理规范(WMI)来收集最近的组策略执行数据,最后将报告显示在组策略管理控制台的结果面板中。
从排错的角度来看,结果中最值得关注的部分包含在摘要和策略事件标签页。摘要标签页提供了在最近一个执行周期中,在计算机和特定用户之上应用的策略执行动作的总览。看一看摘要标签页中的ComponentStatus部分,就知道核心执行阶段或客户端扩展阶段中是否有失败的部分。
如图1所示,如果GroupPolicyInfrastructure的执行状态显示为“Failed”,则表示核心执行阶段出了问题,如果Client-sideExtension的执行状态显示为“Failed”,则表示客户端扩展执行阶段出了问题(如文件夹重定向)。
图1:表明客户端扩展阶段操作失败的错误消息
策略事件标签页为你的排错工作提供了更多的有用信息。通过对组策略结果向导所查询的计算机上的应用程序事件日志进行过滤,就得到了此标签页上的内容。过滤后的视图只显示与组策略有关的事件。在这里,你可以得到很多有价值的信息,知道哪个部分工作正常,哪个部分存在问题。
我们来看一个例子,假设你的登录脚本没有运行,但是摘要标签页中的脚本客户端扩展组件状态却显示成功了。如果你检查策略事件标签页,就可以看到如图2所示的与脚本执行有关的错误,它会告诉你脚本文件找不到了。可能是服务器上的脚本文件丢失了,也可能是权限问题。不管怎样,你发现了可以追踪到问题根源的线索。在利用摘要和策略事件标签页中的信息缩小了问题范围之后,可以开始深入分析了。
图2:指明脚本丢失的策略事件
欲知更多有关组策略排错知识,请点击组策略排错知识概述二。
【编辑推荐】