应用组策略疑难解答指南

试试我们的虚拟代理 - 它可以帮助你快速识别和修复常见的 Active Directory 复制问题

本指南提供了用于排查组策略问题的基本概念。 学习内容:

  • 如何查找新的故障排除信息。
  • 如何使用事件查看器筛选特定的组策略信息。
  • 如何读取和解释事件数据。
  • 用于查找故障点的正确方法。

故障排除清单

  1. 首先读取系统事件日志中记录的组策略事件。

    • 警告事件提供进一步的信息供你遵循,以确保组策略服务保持正常运行。
    • 错误事件提供描述失败和可能原因的信息。
    • 使用事件消息中包含的详细信息链接。
    • 使用“ 详细信息 ”选项卡查看错误代码和说明。
  2. 使用组策略运行日志。

    • 标识要进行故障排除的组策略处理实例的活动 ID。
    • 创建自定义的运行日志视图。
    • 将日志划分为以下阶段:预处理、处理和后期处理。
    • 将每个起始事件与其对应的结束事件合并。 调查所有警告和错误事件。
    • 隔离并排查依赖组件问题。
    • 使用组策略更新命令 (GPUPDATE) 刷新组策略。 重复这些步骤以确定警告或错误是否仍然存在。

重要

刷新组策略会更改自定义视图中的活动 ID。 进行故障排除时,请确保使用最新的活动 ID 更新自定义视图。

确定组策略处理的实例

在查看组策略操作日志之前,必须先确定失败的组策略处理实例。

若要确定组策略处理的实例,请执行以下步骤:

  1. 打开“事件查看器”。
  2. 在事件查看器(本地)下,选择“Windows 日志>系统”。
  3. 双击要排查的组策略警告或错误事件。
  4. 选择“ 详细信息 ”选项卡,然后选中“ 友好”视图。 选择“系统以展开“系统”节点。
  5. 系统节点详细信息中找到 ActivityID。 在查询中使用此值(没有开括号和闭括号)。 将此值复制到记事本,以便稍后可供使用,然后选择“ 关闭”。

创建自定义组策略实例视图

计算机通常有多个组策略处理实例。 专用于运行终端服务的计算机通常具有多个组策略处理实例并同时运行。 因此,必须筛选组策略操作事件日志,以便仅显示要排除故障的实例的事件。

使用以下过程创建自定义组策略实例视图。 为此,请使用事件查看器查询。 此查询为组策略处理的特定实例创建组策略操作日志的筛选视图。

若要创建自定义组策略实例视图,请执行以下步骤:

  1. 打开“事件查看器”。

  2. 右键单击“ 自定义视图”,然后选择“ 创建自定义视图”。

  3. 选择“XML”选项卡,然后手动选中“编辑查询”复选框。 事件查看器显示一个对话框,说明手动编辑查询会阻止你使用“筛选器”选项卡修改查询。选择“是”。

  4. 将事件查看器查询(在此步骤结束时提供)复制到剪贴板。 将查询粘贴到 “查询 ”框中。

    <QueryList><Query Id="0" Path="Application"><Select Path="Microsoft-Windows-GroupPolicy/Operational">*[System/Correlation/@ActivityID='{INSERT ACTIVITY ID HERE}']</Select></Query></QueryList>

  5. 将之前保存的 ActivityID“确定组策略处理 ”部分保存到剪贴板。 在 “查询 ”框中,突出显示“此处插入活动 ID”,然后按 Ctrl+V 将 ActivityID 粘贴到文本上。

    注意

    请确保不要粘贴前导大括号和尾部大括号({ })。 必须包含这些大括号,查询才能正常工作。

  6. 在“ 将筛选器保存到自定义视图 ”对话框中,键入对所创建的视图有意义的名称和说明。 选择“确定”

  7. 保存的视图的名称显示在“自定义视图”下。 选择已保存视图的名称,以在事件查看器中显示其事件。

重要

组策略服务为每个策略处理实例分配唯 一的 ActivityID 。 例如,组策略服务在用户登录期间执行用户策略处理时分配唯 一的 ActivityID 。 组策略刷新时,组策略服务会将另一个唯 一 ActivityID 分配给负责刷新用户策略的组策略实例。

请确保组策略具有要查找的所有设置,并且已正确链接。 下面是必须经历的选项卡。 如果所有这些虚拟机看起来都不错,请转到有问题的客户端计算机。

  1. 打开提升的命令提示符并运行以下命令。

    gpresult /h gp.html
    
  2. gpresult验证捕获的输出,并查找遇到问题的 GPO。 它会提供有关 GPO 为何未应用的错误。

  3. 如果输出中有 gpresult 错误,我们可以基于该问题进行故障排除。 否则,请转到下一步。

  4. 打开事件查看器并浏览到应用程序和系统事件日志。 应用程序事件日志将提供有关组策略更新失败的原因的详细信息。

  5. 打开操作事件日志以获取更多详细信息。 存在应用 GPO 列表和拒绝 GPO 列表的事件,原因如下。

大多数 GPO 问题都可以使用这些基本日志来解决。

组策略日志文件

可以启用详细日志记录并检查生成的日志文件。 详细日志记录可以减少性能并占用大量磁盘空间,因此最佳做法是仅在必要时启用详细日志记录。

启用组策略服务 (GPSvc) 日志记录

在发生 GPO 问题的客户端上,按照以下步骤启用组策略服务调试日志记录。

  1. 打开注册表编辑器。

  2. 找到并选择以下注册表子项:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion

  3. “编辑”菜单上,选择“新建>密钥”。

  4. 键入 诊断,然后按 Enter。

  5. 右键单击“诊断”子项,选择“新建>DWORD”(32 位)值。

  6. 键入 GPSvcDebugLevel,然后按 Enter。

  7. 右键单击 GPSvcDebugLevel,然后选择“ 修改”。

  8. “值”数据 框中,键入 30002 (十六进制),然后选择“ 确定”。

  9. 退出注册表编辑器。

  10. 在命令提示符窗口中,运行 gpupdate /force 命令,然后按 Enter。

然后,在 以下文件夹中查看Gpsvc.log 文件: %windir%\debug\usermode

注意

如果 usermode 文件夹不存在,请在 %windir%\debug创建它。 如果 %WINDIR%\debug\不存在 usermode 文件夹,则不会创建gpsvc.log文件。

常见问题和解决方案

事件 ID 1129

当组策略由于网络连接问题而无法应用时,记录事件 ID 1129。

在这种情况下,DC 上阻止了与轻型目录访问协议 (LDAP) 端口 389 的连接。 该 gpupdate 命令失败并出现以下错误:

检查事件日志时,可能会发现以下事件说明:

The processing of Group Policy failed because of lack of network connectivity to a domain controller. This may be a transient condition. A success message would be generated once the machine gets connected to the domain controller and Group Policy has successfully processed. If you do not see a success Message for several hours, then contact your administrator.

在这种情况下,请启用 gpsvc 调试日志。 在 gpsvc 日志中,你可能会发现输出“GetLdapHandle: 无法 <将 DC> 连接到 81”。

启用网络跟踪以验证:

  • 站点级别有一个 LDAP 查询。
  • 该查询返回该站点的两个条目,这些条目包含 ldap 服务角色。
  • 对于其中一个,我们可以看到正在完成名称解析。
  • 由于名称解析成功,因此它尝试执行 LDAP 绑定,但在 TCP 握手处失败,因为端口 389 被阻止。
  • 如果 DC 对端口 389 上的 TCP 握手没有答案,后续步骤是涉及客户网络团队,并向他们提供此信息。
  • 确保在这种情况下,使用上述行动计划中指定的所有日志,将它们关联起来,它们将导致根本原因或至少缩小问题的范围。

事件 ID 1002

下面是事件 ID 1002 的说明:

The processing of Group Policy failed because of a system allocation failure. Please ensure the computer is not running low on resources (memory, available disk space). Group Policy processing will be attempted at the next refresh cycle.

当计算机从低资源状态返回时,通常会解决此错误事件。 可能的解决方法包括:

  1. 确保计算机内存不足或可用磁盘空间不足。
  2. 如果计算机已长时间运行,请重新启动计算机。

事件 ID 1006

下面是事件 ID 1006 的说明:

The processing of Group Policy failed. Windows could not authenticate to the Active Directory service on a domain controller. (LDAP Bind function call failed). Look in the Details tab for error code and description.

更正到目录的绑定后,通常会解决此错误事件。 组策略服务会记录一个错误代码,该错误代码显示在事件查看器中错误消息的“详细信息”选项卡上。 错误代码(显示为小数)和错误说明字段进一步确定失败的原因。 使用以下列表评估错误代码:

  • 错误代码 5 (拒绝访问)

    此错误代码可能表示用户无权访问 Active Directory。

  • 错误代码 49 (凭据无效)

    此错误代码可能指示用户的密码在用户仍在计算机上登录时已过期。 若要更正无效的凭据,请执行以下操作:

    1. 更改用户的密码。
    2. 锁定/解锁工作站。
    3. 检查是否有任何系统服务作为用户帐户运行。
    4. 验证服务配置中的密码是否适合用户帐户。
  • 错误代码为 258 (超时)

    此错误代码可能指示 DNS 配置不正确。 若要更正超时问题,请使用 nslookup 该工具确认 _ldap._tcp。<domain-dns-name> 记录已注册并指向正确的服务器(其中 <domain-dns-name> 是 Active Directory 域的完全限定域名)。

    注意

    如果网络限制或阻止 Internet 控制消息协议(ICMP)数据包,这些步骤可能会有不同的结果。

事件 ID 1030

下面是事件 ID 1030 的说明:

The processing of Group Policy failed. Windows attempted to retrieve new Group Policy settings for this user or computer. Look in the Details tab for error code and description. Windows will automatically retry this operation at the next refresh cycle. Computers joined to the domain must have proper name resolution and network connectivity to a domain controller for discovery of new Group Policy objects and settings. An event will be logged when Group Policy is successful.

检查 LDAP 端口是否已打开。 否则,请确保端口在防火墙上打开,并在客户端和域控制器上本地打开。

如何确定端口块

确保客户端无法解析主机名的 DNS 名称解析

  • 如果客户端无法解析主机名,则最好验证上面列出的客户端应使用的主机名解析序列。 如果客户端使用的任何资源中不存在该名称,则必须确定要添加该名称的资源。 如果某个资源(如 DNS 服务器或 Windows Internet 名称服务(WINS)服务器中存在该名称,并且客户端未正确解析名称,请将注意力集中在对特定资源的故障排除上。
  • 此外,请确认客户端正在尝试解析主机名,而不是 NetBIOS 名称。 许多应用程序有多个方法可用于解析名称。 邮件和数据库应用程序尤其如此。 应用程序可配置为使用 NetBIOS 连接到资源。 根据客户端配置,客户端可能会绕过主机名解析。 在此处,需要将连接类型更改为 TCP/IP 套接字,或者将问题作为 NetBIOS 问题进行故障排除。

组策略容器权限

使用以下 Get-GPPermission PowerShell cmdlet 获取指定 GPO 上所有安全主体的权限级别:

Get-GPPermission -Name "TestGPO" -All

事件 ID 1058

下面是事件 ID 1058 的说明:

The processing of Group Policy failed. Windows attempted to read the file %9 from a domain controller and was not successful. Group Policy settings may not be applied until this event is resolved. This issue may be transient and could be caused by one or more of the following:
1. Name Resolution/Network Connectivity to the current domain controller.
2. File Replication Service Latency (a file created on another domain controller has not replicated to the current domain controller).
3. The Distributed File System (DFS) client has been disabled.

正确连接到组策略模板。 组策略服务记录域控制器的名称和错误代码,该代码显示在事件查看器错误消息的“详细信息”选项卡上。 错误代码(显示为小数)和错误说明字段进一步确定失败的原因。 使用以下列表评估错误代码:

  • 错误代码 3 (系统找不到指定的路径)

    此错误代码通常指示客户端计算机找不到事件中指定的路径。 测试与域控制器的 sysvol 的客户端连接:

    1. 标识计算机使用的域控制器。 域控制器名称记录在错误事件的详细信息中。

    2. 确定在用户或计算机处理期间是否发生故障。 对于用户策略处理, 事件的用户 字段将显示有效的用户名;对于计算机策略处理, 用户 字段将显示“SYSTEM”。

    3. 将gpt.ini的完整网络路径撰写为 \\<dcName>\SYSVOL\<domain>\Policies\<guid>\gpt.ini其中 <dcName> 是域控制器的名称,<域>是域的名称,guid <> 是策略文件夹的 GUID。 所有信息都显示在事件中。

    4. 使用在上一步中获取的完整网络路径,验证是否可以读取 gpt.ini 。 为此,请打开命令提示符窗口并键入 <file_path>,其中 <file_path> 是上一步中构造的路径,然后按 Enter。

      注意

      必须将此命令作为以前失败的用户或计算机运行。

  • 错误代码 5 (拒绝访问)

    此错误代码通常表示用户或计算机无权访问事件中指定的路径。 在域控制器上,确保用户和计算机具有读取事件中指定的路径的适当权限。 测试计算机和用户凭据:

    1. 注销并重新启动计算机。
    2. 使用以前使用的域凭据登录计算机。
  • 错误代码 53(找不到网络路径)

    此错误代码通常指示计算机无法解析提供的网络路径中的名称。 测试网络路径名称解析:

    1. 标识计算机使用的域控制器。 域控制器的名称记录在错误事件的详细信息中。
    2. 尝试使用路径 \\<dcName\netlogon 连接到域控制器上的 netlogon 共享,其中 <dcName>> 是错误事件中域控制器的名称。

事件 ID 1053

下面是事件 ID 1053 的说明:

The processing of Group Policy failed. Windows could not resolve the user name. This could be caused by one or more of the following:
1. Name Resolution failure on the current domain controller.
2. Active Directory Replication Latency (an account created on another domain controller has not replicated to the current domain controller).

组策略服务记录域控制器的名称和错误代码。 此信息显示在事件查看器错误消息的“详细信息”选项卡上。 错误代码(显示为小数)和错误说明字段进一步确定失败的原因。 使用以下列表评估错误代码:

  • 错误代码 5 (拒绝访问):此错误代码可能表示用户的密码在用户仍登录计算机时已过期。 如果用户最近更改了其密码,则问题可能会在允许 Active Directory 复制成功后消失。

    1. 更改用户密码。
    2. 锁定/解锁工作站。
    3. 检查是否有任何系统服务作为用户帐户运行。
    4. 验证服务配置中的密码是否适合用户帐户。
  • 错误代码 14(没有足够的存储可用于完成此操作)

    此错误代码可能指示 Windows 没有足够的内存来完成任务。 调查系统事件日志中是否存在任何其他特定于内存的问题。

  • 错误代码 525(指定的用户不存在)

    此错误代码可能表示组织单位的权限不正确。 用户需要对包含用户对象的组织单位进行读取访问权限。 同样,计算机需要对包含计算机对象的组织单位进行读取访问。

  • 错误代码 1355(指定的域不存在或无法联系)

    此错误代码可能指示名称解析错误或配置不当(DNS)。 用于 nslookup 确认可以解析用户域中域控制器的地址。

  • 错误代码 1727(远程过程调用失败且未执行)

    此错误代码可能指示防火墙规则阻止与域控制器通信。 如果安装了第三方防火墙软件,请检查防火墙的配置,或尝试暂时禁用它并验证组策略是否成功处理。

事件 ID 1097

下面是事件 ID 1097 的说明:

The processing of Group Policy failed. Windows could not determine the computer account to enforce Group Policy settings. This may be transient. Group Policy settings, including computer configuration, will not be enforced for this computer.

域计算机对域进行身份验证,域用户也进行身份验证。 Windows 要求计算机登录,然后才能将组策略应用到计算机。 可能的解决方法包括:

  • 验证计算机上的时间是否与域控制器上的时间同步。
  • 如果计算机在与域控制器不同的时区中配置,则考虑时区配置错误。
  • 计算机与域控制器之间的时间差超过 5 分钟可能会导致计算机无法通过域进行身份验证。 使用 w32tm /resync 命令强制对时间服务进行时间同步。
  • 重新启动计算机。

事件 ID 4016 和事件 ID 5016

在定期组策略刷新期间,服务使用它在预处理阶段收集的信息来应用每个策略设置。 该服务通过将以前收集的信息传递给每个系统和非系统客户端扩展来实现此目的。 此阶段首先记录客户端扩展(CSE)处理事件。

事件 ID 事件类型 解释
4016 信息 每当组策略客户端扩展开始处理时,组策略服务都会记录此事件。
5016 成功 组策略服务在组策略客户端扩展成功完成其处理时记录此事件。

转到 “事件 ID 5016”下的“详细信息 ”选项卡时,可能会发现以下返回状态:

ErrorCode 2147483658 <-> 0x8000000a       -2147483638               E_PENDING                    "The data necessary to complete this operation is not yet available"

注意

在审核客户端扩展处理期间,返回值“-2147483638(E_PENDING)”是预期值。 它指示组策略引擎已成功启动异步线程来处理审核扩展信息。 这也意味着,即使新的审核设置有效或应用于客户端,也会记录返回值。

确定高级审核客户端扩展 (AuditCSE) 处理

从事件 ID 5016 收到返回值2147483658后,可以在 Security-Audit-Configuration-Client>操作事件日志下检查 AuditCSE 处理的详细级别事件。 此信息有助于观察高级审核组策略设置的处理,从而检测任何故障/错误。

  1. 审核客户端扩展(Auditcse.dll)将处理审核客户端扩展。
  2. 它在 Security-Audit-Configuration-Client>操作日志有自己的日志记录。

按照以下步骤查看 Security-Audit-Configuration-Client>操作事件日志,以便排查审核组策略设置问题:

  1. 打开 事件查看器
  2. 事件查看器(本地)下,选择“应用程序和服务日志>”Microsoft>Windows>Security-Audit-Configuration-Client>操作。
  3. 双击“警告”或“错误事件进行故障排除。 另请查看 这些事件的“详细信息 ”选项卡,了解任何 错误 值。
  4. 否则,请查看 信息事件 以捕获审核扩展的完整处理。

在联系Microsoft 支持部门之前收集关键信息

在完成支持请求之前,建议使用 Windows Live Dump 功能在受影响的计算机上保存内核内存的快照。 为此,请按照下列步骤进行操作:

  1. 通过运行以下命令捕获组策略服务详细日志记录:

    md %windir%\debug\usermode
    
    reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Diagnostics" /v GPSvcDebugLevel /t REG_DWORD /d "0x00030002"
    
  2. 使用 gpupdate /force 命令刷新本地和基于 AD 的组策略设置。

    提示

    如果对特定用户或计算机缺少设置进行故障排除,请使用以下命令之一:

    • Gpupdate /force /target:computer
    • Gpupdate /force /target:user
  3. 运行以下命令,将“策略结果集”(RSoP)报表保存到 HTML 文件:

    gpresult /h %Temp%\GPResult.htm
    
  4. 运行以下命令,将 RSoP 摘要数据保存到 txt 文件:

    gpresult /r >%Temp%\GPResult.txt
    
  5. 运行以下命令导出 GPExtensions 注册表项:

    reg export "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions" %Temp%\GPExtensions.reg
    
  6. 运行以下命令导出系统、应用程序和组策略操作事件查看器日志:

    wevtutil.exe export-log Application %Temp%\Application.evtx /overwrite:true
    
    wevtutil.exe export-log System %Temp%\System.evtx /overwrite:true
    
    wevtutil.exe export-log Microsoft-Windows-GroupPolicy/Operational %Temp%\GroupPolicy.evtx /overwrite:true
    
  7. 捕获以下文件:

    • %Temp%\Application.evtx
    • %Temp%\System.evtx
    • %Temp%\GroupPolicy.evtx
    • %Temp%\GPExtensions.reg
    • %Temp%\GPResult.txt
    • %Temp%\GPResult.html
    • %windir%\debug\usermode\gpsvc.log
  8. 完成后,可以通过运行以下命令来停止组策略服务日志记录:

    reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Diagnostics" /v GPSvcDebugLevel /t REG_DWORD /d "0x00000000" /f
    

数据收集

如果需要Microsoft支持方面的帮助,建议按照使用 TSS 收集信息中的 步骤收集组策略问题来收集信息。