Windows Server 2003发生 Userenv 错误事件ID1058、1030

症状

在运行 Microsoft Windows Server 2003、Microsoft Windows XP 或 Microsoft Windows 2000 的计算机上,您会遇到以下的一种或多种症状:
  • 组策略设置未应用到计算机。
  • 在网络上的域控制器之间进行的组策略复制未完成。
  • 无法打开组策略管理单元。例如,无法打开域控制器安全策略管理单元或域安全策略管理单元。
  • 尝试打开组策略管理单元时,您收到下列错误信息之一:
    Failed to open the Group Policy Object.You may not have the appropriate rights. 
    Details:The account is not authorized to log in from this station.
    You do not have permission to perform this operation. 
    Details:Access is denied.
    Failed to open the Group Policy Object.You may not have the appropriate rights. 
    Details:The system cannot find the path specified.
  • 尝试访问任何域控制器上的共享文件时,您收到一条错误信息。即使登录到服务器,并尝试访问本地共享,仍会出现此症状。具体来说,此症状可能会影响对域控制器的 Sysvol 共享的访问。
  • 尝试访问文件共享时,系统将重复提示您输入密码。
  • 尝试访问文件共享时,您收到与以下错误信息之一类似的错误信息:
    \\ Server_Name\ Share_Name is not accessible.You might not have permission to use this network resource.Contact the administrator of this server to find out if you have access permissions. 
    The account is not authorized to log in from this station.
    \\ Server_Name\ Share_Name is not accessible. 
    The account is not authorized to log in from this station.
    The network path was not found.
在 Windows XP 或 Windows Server 2003 的事件查看器中查看应用程序日志时,将看到与以下事件类似的事件:
类型: 错误 
来源: Userenv 
类别: 无 
事件 ID: 1058 
日期:  Date
时间:  Time
用户:  User_Name
计算机:  Computer_Name
描述:Windows 无法访问 GPO CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC= domainname,DC=com 的文件 gpt.ini。此文件必须在 <\\ domainname.com\sysvol\ domainname.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984 F9}\gpt.ini>。( Error_Message)。组策略处理中止。 有关更多信息,请参阅在 http://support.microsoft.com 的帮助和支持中心。
在事件 ID 1058 中的  Error_Message 占位符中出现的错误信息可能是以下任一错误信息:
  • 找不到网络路径。
  • 访问被拒绝。
  • 未能从域控制器读取配置信息,或者因为机器不可使用,或者是访问被拒绝。
类型: 错误 
来源: Userenv 
类别: 无 
事件 ID: 1030 
日期:  Date
时间:  Time
用户:  User_Name
计算机:  Computer_Name
描述:Windows 不能查询组策略对象列表。描述此问题的原因的消息先前被策略引擎记录。 有关更多信息,请参阅在 http://support.microsoft.com 的帮助和支持中心。
通常,如果发生事件 ID 1058 和事件 ID 1030,则在计算机启动时,客户机和成员服务器将对它们进行记录。域控制器每五分钟记录一次这些事件。

在基于 Windows 2000 的计算机上的事件查看器中查看应用程序日志时,将看到与以下事件类似的事件:
类型: 错误 
来源: Userenv 
类别: 无 
事件 ID: 1000 
日期:  Date
时间:  Time
用户: NT AUTHORITY\SYSTEM 
计算机:  Computer_Name
描述:Windows 不能在 \\ domainname.com\sysvol\ domainname.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984F 9}\Machine\registry.pol 访问注册表信息 ( Error_Code)。
事件 ID 1000 中的  Error_Code 占位符中出现的错误代码可能是以下任一错误代码:
  • 5
  • 51
  • 53
  • 1231
  • 1240
  • 1722

Collapse image原因

如果网络上的计算机无法连接到某些组策略对象,就会发生这些问题。具体来说,这些对象位于网络的域控制器上的 Sysvol 文件夹中。

Collapse image解决方案

警告 :注册表编辑器或其他方法使用不当可能导致严重问题。这些问题可能需要重新安装操作系统。Microsoft 不能保证您可以解决这些问题。修改注册表需要您自担风险。

要解决此问题,您必须对网络配置进行故障排除以减小引发此问题的可能性,然后更正配置。要排查发生此问题的可能原因,请按照下列步骤操作:

第一步:检查服务器和客户机上的 DNS 设置和网络属性

在本地连接属性中,所有服务器和客户机上都必须启用“Microsoft 网络客户端”。所有域控制器上都必须启用“Microsoft 网络的文件和打印机共享”组件。

此外,网络上的每台计算机都必须使用能够解析该计算机所属 Active Directory 林的 SRV 记录和主机名的 DNS 服务器。通常,发生常见配置错误是因为客户机使用了属于 Internet 服务提供商 (ISP) 的 DNS 服务器。

在所有记录了 Userenv 错误的计算机上,检查 DNS 设置和网络属性。此外,在所有域控制器上检查这些设置,无论这些域控制器是否记录 Userenv 错误。

要验证网络中基于 Windows XP 的计算机上的 DNS 设置和网络属性,请按照下列步骤操作:
  1. 单击“开始”,然后单击“控制面板”。
  2. 如果控制面板以分类视图显示,请单击“切换到经典视图”。
  3. 双击“网络连接”,右键单击“本地连接”,然后单击“属性”。
  4. 在“常规”选项卡上,单击以选中“Microsoft 网络客户端”复选框。
  5. 单击“Internet 协议 (TCP/IP)”,然后单击“属性”。
  6. 如果选择了“使用下面的 DNS 服务器地址”,请确保首选 DNS 服务器和备用 DNS 服务器的 IP 地址是能够解析 Active Directory 中的 SRV 记录和主机名的 DNS 服务器的 IP 地址。具体来说,计算机不能使用属于 ISP 的 DNS 服务器。如果 DNS 服务器地址不正确,请在“首选 DNS 服务器”框和“备用 DNS 服务器”框中键入正确 DNS 服务器的 IP 地址。
  7. 单击“高级”,然后单击“DNS”选项卡。
  8. 单击以选中“在 DNS 中注册此连接的地址”复选框,然后单击“确定”三次。
  9. 打开一个命令提示符窗口。为此,请依次单击“开始”、“运行”,键入 cmd,然后单击“确定”。
  10. 键入 ipconfig /flushdns,然后按 Enter 键。键入 ipconfig /registerdns,然后按 Enter 键。
  11. 重新启动计算机,以使更改生效。
要验证网络中基于 Windows 2000 的计算机上的 DNS 设置和网络属性,请按照下列步骤操作:
  1. 单击“开始”,指向“设置”,然后单击“控制面板”。
  2. 双击“网络和拨号连接”。
  3. 右键单击“本地连接”,然后单击“属性”。
  4. 在“常规”选项卡上,单击以选中“Microsoft 网络客户端”复选框。
  5. 如果计算机是域控制器,请单击以选中“Microsoft 网络的文件和打印机共享”复选框。 

    注意:在多主远程访问服务器和基于 Microsoft Internet Security and Acceleration (ISA) Server 的服务器上,您可以对连接到 Internet 的网络适配器禁用“Microsoft 网络的文件和打印机共享”组件。不过,必须对所有服务器的网络适配器启用“Microsoft 网络客户端”组件。
  6. 单击“Internet 协议 (TCP/IP)”,然后单击“属性”。
  7. 如果选择了“使用下面的 DNS 服务器地址”,请确保首选 DNS 服务器和备用 DNS 服务器的 IP 地址是能够解析 Active Directory 中的 SRV 记录和主机名的 DNS 服务器的 IP 地址。具体来说,计算机不能使用属于 ISP 的 DNS 服务器。如果 DNS 服务器地址不正确,请在“首选 DNS 服务器”框和“备用 DNS 服务器”框中键入正确 DNS 服务器的 IP 地址。
  8. 单击“高级”,然后单击“DNS”选项卡。
  9. 单击以选中“在 DNS 中注册此连接的地址”复选框,然后单击“确定”三次。
  10. 打开一个命令提示符窗口。为此,请依次单击“开始”、“运行”,在“打开”框中键入 cmd,然后单击“确定”。
  11. 键入 ipconfig /flushdns,然后按 Enter 键。键入 ipconfig /registerdns,然后按 Enter 键。
  12. 重新启动计算机。
要验证网络中基于 Windows Server 2003 的计算机上的 DNS 设置和网络属性,请按照下列步骤操作:
  1. 单击“开始”,指向“控制面板”,然后双击“网络连接”。
  2. 右键单击“本地连接”,然后单击“属性”。
  3. 在“常规”选项卡上,单击以选中“Microsoft 网络客户端”复选框。
  4. 如果计算机是域控制器,请单击以选中“Microsoft 网络的文件和打印机共享”复选框。 

    注意:在多主远程访问服务器和基于 ISA Server 的服务器上,您可以对连接到 Internet 的网络适配器禁用“Microsoft 网络的文件和打印机共享”组件。不过,必须对所有服务器的网络适配器启用“Microsoft 网络客户端”组件。
  5. 单击“Internet 协议 (TCP/IP)”,然后单击“属性”。
  6. 如果选择了“使用下面的 DNS 服务器地址”,请确保首选 DNS 服务器和备用 DNS 服务器的 IP 地址是能够解析 Active Directory 中的 SRV 记录和主机名的 DNS 服务器的 IP 地址。具体来说,计算机不能使用属于 ISP 的 DNS 服务器。如果 DNS 服务器地址不正确,请在“首选 DNS 服务器”框和“备用 DNS 服务器”框中键入正确 DNS 服务器的 IP 地址。
  7. 单击“高级”,然后单击“DNS”选项卡。
  8. 单击以选中“在 DNS 中注册此连接的地址”复选框,然后单击“确定”三次。
  9. 打开一个命令提示符窗口。为此,请依次单击“开始”、“运行”,键入 cmd,然后单击“确定”。
  10. 键入 ipconfig /flushdns,然后按 Enter 键。键入 ipconfig /registerdns,然后按 Enter 键。
  11. 重新启动计算机,以使更改生效。
如果网络中的客户机配置为自动获取 IP 地址,请确保运行 DHCP 服务的计算机分配了能够解析 Active Directory 中的 SRV 记录和主机名的 DNS 服务器的 IP 地址。

要确定计算机使用的 DNS 的 IP 地址,请按照下列步骤操作:
  1. 打开一个命令提示符窗口。为此,请依次单击“开始”、“运行”,在“打开”框中键入 cmd,然后单击“确定”。
  2. 键入 ipconfig /all,然后按 Enter 键。
  3. 请注意屏幕上列出的 DNS 项。
如果配置为自动获得 IP 地址的计算机使用的 DNS 服务器不正确,请查看您的 DHCP 服务器文档,以获得有关如何配置 DNS 服务器选项的信息。 此外,请确保每台计算机都能够解析域的 IP 地址。为此,请在命令提示符下键入  pingYour_Domain_Name.Your_Domain_Root ,然后按 Enter 键。或者,键入  nslookup Your_Domain_Name.Your_Domain_Root ,然后按 Enter 键。

注意 :此主机名应解析为网络上某一域控制器的 IP 地址。如果计算机不能解析此名称,或者此名称解析为错误的 IP 地址,请确保域的正向查找区域包含有效的“(与父文件夹相同)”主机 (A) 记录。

要确保域的正向查找区域包含基于 Windows 2000 的计算机上的有效“(与父文件夹相同)”主机 (A) 记录,请按照下列步骤操作:
  1. 在运行 DNS 的域控制器上单击“开始”,指向“程序”,指向“管理工具”,然后单击“DNS”。
  2. 依次展开“Your_Server_Name”、“正向查找区域”,然后单击域的正向查找区域。
  3. 查找“(与父文件夹相同)”主机 (A) 记录。
  4. 如果“(与父文件夹相同)”主机 (A) 记录不存在,请按照下列步骤创建一条记录:
    1. 在“操作”菜单上,单击“新建主机”。
    2. 在“IP 地址”框中,键入域控制器的本地网络适配器的 IP 地址。
    3. 单击以选中“创建相关的指针(PTR)记录”复选框,然后单击“添加主机”。
    4. 如果收到以下信息,请单击“是”:
      “(与父文件夹相同)”不是一个有效的主机名。您确实要添加这个记录吗?
  5. 双击“(与父文件夹相同)”主机 (A) 记录。
  6. 验证正确的 IP 地址是否列在“IP 地址”框中。
  7. 如果“IP 地址”框中的 IP 地址无效,请在“IP 地址”框中键入正确的 IP 地址,然后单击“确定”。
  8. 也可以删除包含无效 IP 地址的“(与父文件夹相同)”主机 (A) 记录。要删除“(与父文件夹相同)”主机 (A) 记录,请右键单击该记录,然后单击“删除”。
  9. 如果 DNS 服务器是一个域控制器,并且该域控制器同时还是路由和远程访问服务器,请查看下面的 Microsoft 知识库文章:
    292822 同时也运行 DNS 或 WINS 的路由和远程访问服务器上的名称解析和连接问题
  10. 在您添加、删除或修改 DNS 记录的所有计算机上,在命令提示符下键入 ipconfig /flushdns,然后按 Enter 键。
要确保域的正向查找区域包含基于 Windows Server 2003 的计算机上的有效“(与父文件夹相同)”主机 (A) 记录,请按照下列步骤操作:
  1. 在运行 DNS 的域控制器上,单击“开始”,指向“管理工具”,然后单击“DNS”。
  2. 依次展开“Your_Server_Name”、“正向查找区域”,然后单击域的正向查找区域。
  3. 查找“(与父文件夹相同)”主机 (A) 记录。
  4. 如果“(与父文件夹相同)”主机 (A) 记录不存在,请按照下列步骤创建一条记录:
    1. 在“操作”菜单上,单击“新建主机(A)”。
    2. 在“IP 地址”框中,键入域控制器的本地网络适配器的 IP 地址。
    3. 单击以选中“创建相关的指针(PTR)记录”复选框,然后单击“添加主机”。
    4. 在收到以下信息时,单击“是”:
      “(与父文件夹相同)”不是一个有效的主机名。您确实要添加这个记录吗?
  5. 双击“(与父文件夹相同)”主机 (A) 记录。
  6. 验证正确的 IP 地址是否列在“IP 地址”框中。
  7. 如果“IP 地址”框中的 IP 地址无效,请在“IP 地址”框中键入正确的 IP 地址,然后单击“确定”。
  8. 也可以删除包含无效 IP 地址的“(与父文件夹相同)”主机 (A) 记录。要删除主机 (A) 记录,请右键单击“(与父文件夹相同)”,然后单击“删除”。
  9. 如果 DNS 服务器是一个域控制器,并且该域控制器同时还是路由和远程访问服务器,请查看下面的 Microsoft 知识库文章:
    292822 同时也运行 DNS 或 WINS 的路由和远程访问服务器上的名称解析和连接问题
  10. 在您添加、删除或修改 DNS 记录的所有计算机上,在命令提示符下键入 ipconfig /flushdns,然后按 Enter 键。
第二步:检查客户机和成员服务器上的服务器消息块签名设置
服务器消息块 (SMB) 签名设置定义网络上的计算机是否对通信进行数字签名。如果 SMB 签名设置配置不正确,则客户机或成员服务器可能无法连接到域控制器。

例如,域控制器可能要求 SMB 签名,但 SMB 签名在客户机上可能被禁用。如果发生此问题,则无法正确应用组策略。这样,客户机会在应用程序日志中记录用户环境 (Userenv) 错误。 
有时,域控制器上的服务器服务和工作站服务的 SMB 签名设置可能彼此冲突。

例如,可以对域控制器的工作站服务禁用 SMB 签名,但是域控制器的服务器服务要求 SMB 签名。在这种情况下,如果您登录到服务器,将无法打开该域控制器的一个或多个本地文件共享。此外,如果您登录到服务器,将无法打开组策略管理单元。 有关如何对域控制器上的此类问题进行故障排除的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
839499 对域控制器上的工作站服务或服务器服务禁用 SMB 签名时不能打开文件共享或组策略管理单元
如果组策略错误仅发生在客户机和成员服务器上,或者您确定 KB 文章 839499 不适用于您的情况,请继续对该问题进行故障排除。

默认情况下,SMB 签名是启用的,但是运行 Windows XP、Windows 2000 或 Windows Server 2003 的客户机和成员服务器上的客户端通信不要求 SMB 签名。我们建议您使用默认配置,因为虽然客户机在可能的时候可以使用 SMB 签名,但它仍然会与禁用了 SMB 签名的服务器进行通信。

要配置客户机和成员服务器以便启用 SMB 签名而不要求 SMB 签名,您必须更改某些注册表项的值。要在客户机上对注册表进行更改,请按照下列步骤操作:
  1. 依次单击“开始”、“运行”,在“打开”框中键入 regedit,然后单击“确定”。
  2. 展开以下注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
  3. 在右窗格中,右键单击“enablesecuritysignature”,然后单击“修改”。
  4. 在“数值数据”框中,键入 0,然后单击“确定”。
  5. 右键单击“requiresecuritysignature”,然后单击“修改”。
  6. 在“数值数据”框中,键入 0,然后单击“确定”。
  7. 展开以下注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters
  8. 在右窗格中,右键单击“enablesecuritysignature”,然后单击“修改”。
  9. 在“数值数据”框中,键入 1,然后单击“确定”。
  10. 右键单击“requiresecuritysignature”,然后单击“修改”。
  11. 在“数值数据”框中,键入 0,然后单击“确定”。
更改注册表值后,重新启动服务器服务和工作站服务。不要重新启动计算机,因为重新启动计算机将导致应用组策略,而组策略设置可能会再次配置冲突值。 

在受影响的计算机上更改注册表值并重新启动服务器服务和工作站服务后,请按照下列步骤操作:
  1. 查看应用到受影响的计算机帐户的一个或多个 GPO 的组策略设置。
  2. 确保组策略与所需的注册表设置不冲突。
  3. 使用组策略对象编辑器来查看以下文件夹中的策略设置:
    Computer Configuration/Windows Settings/Security Settings/Local Policies/Security Options
在运行 Windows Server 2003 的计算机上,SMB 签名组策略设置具有下列名称:
  • Microsoft 网络服务器:数字签名的通信(总是)
  • Microsoft 网络服务器:数字签名的通信(若客户端同意)
  • Microsoft 网络客户端:数字签名的通信(总是)
  • Microsoft 网络客户端:数字签名的通信(若服务器同意)
在运行 Windows 2000 Server 的计算机上,SMB 签名组策略设置具有下列名称:
  • 数字签名的通信(总是)
  • 数字签名的服务器通信(可能时)
  • 数字签名的客户端通信(总是)
  • 数字签名的客户端通信(可能时)
通常,SMB 签名组策略设置配置为“未定义”。如果定义 SMB 签名组策略设置,一定要了解该设置可能会对网络连接产生什么影响。 有关 SMB 签名设置的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
823659 修改安全设置和用户权限分配时可能出现的客户端、服务和程序不兼容问题
如果在运行 Windows 2000 Server 的域控制器上更改 GPO 设置,请按照下列步骤操作:
  1. 打开一个命令提示符窗口。为此,请依次单击“开始”、“运行”,在“打开”框中键入 cmd,然后单击“确定”。
  2. 键入 secedit /refreshpolicy machine_policy /enforce,然后按 Enter 键。
  3. 重新启动受影响的客户机。
  4. 重新检查客户机上的注册表中的 SMB 签名值,以确保没有意外更改它们。
如果在运行 Windows Server 2003 的域控制器上更改 GPO 设置,请按照下列步骤操作:
  1. 打开一个命令提示符窗口。为此,请依次单击“开始”、“运行”,在“打开”框中键入 cmd,然后单击“确定”。
  2. 键入 gpupdate /force,然后按 Enter 键。
  3. 重新启动受影响的客户机。
  4. 重新检查客户机上的注册表中的 SMB 签名值,以确保没有意外更改它们。
如果在重新启动客户机后意外更改了注册表中的 SMB 签名值,请使用下列方法之一来查看应用到客户机的策略设置:
  • 在基于 Windows XP 的计算机上,使用策略的结果集 MMC 管理单元 (Rsop.msc)。有关策略的结果集的更多信息,请访问下面的 Microsoft“Resultant Set of Policy”(策略的结果集)网站:
  • 在 Windows 2000 上,使用 Gpresult.exe 命令行工具检查组策略结果。为此,请按照下列步骤操作:
    1. 从 Windows 2000 资源工具包安装 Gpresult.exe。

      也可以从下面的 Microsoft“Gpresult.exe:Group Policy Results”(Gpresult.exe:组策略结果)网站来下载 Gpresult.exe:
    2. 在命令提示符下键入 gpresult /scope computer,然后按 Enter 键。
    3. 在输出的“应用的组策略对象”部分,注意应用到计算机帐户的组策略对象。
    4. 比较应用到计算机帐户的组策略对象,该帐户在域控制器上具有针对这些组策略对象的 SMB 签名策略设置。
第三步:确保在所有的计算机上都启动了 TCP/IP NetBIOS Helper 服务
网络上的所有计算机都必须运行 TCP/IP NetBIOS Helper 服务。

要验证 TCP/IP NetBIOS Helper 服务是否正在基于 Windows XP 的计算机上运行,请按照下列步骤操作:
  1. 单击“开始”,然后单击“控制面板”。
  2. 如果控制面板以分类视图显示,请单击“切换到经典视图”。
  3. 双击“管理工具”。
  4. 双击“服务”。
  5. 在“服务”列表中,单击“TCP/IP NetBIOS Helper”。验证“状态”列下的值是否为“已启动”。验证“启动类型”列下的值是否为“自动”。 如果“状态”值或“启动类型”值不正确,请按照下列步骤操作:
    1. 右键单击“TCP/IP NetBIOS Helper”,然后单击“属性”。
    2. 在“启动类型”列表中,单击“自动”。
    3. 在“服务状态”区域中,如果未启动服务,单击“启动”。
    4. 单击“确定”。
要验证 TCP/IP NetBIOS Helper 服务是否正在基于 Windows Server 2003 的计算机上运行,请按照下列步骤操作:
  1. 单击“开始”,指向“管理工具”,然后单击“服务”。
  2. 在“服务”列表中,单击“TCP/IP NetBIOS Helper”。验证“状态”列下的值是否为“已启动”。验证“启动类型”列下的值是否为“自动”。 如果“状态”值或“启动类型”值不正确,请按照下列步骤操作:
    1. 右键单击“TCP/IP NetBIOS Helper”,然后单击“属性”。
    2. 在“启动类型”列表中,单击“自动”。
    3. 在“服务状态”区域中,如果未启动服务,单击“启动”。
    4. 单击“确定”。
要验证 TCP/IP NetBIOS Helper 服务是否正在基于 Windows 2000 的计算机上运行,请按照下列步骤操作:
  1. 单击“开始”,指向“程序”,指向“管理工具”,然后单击“服务”。
  2. 在“服务”列表中,单击“TCP/IP NetBIOS Helper Service”。验证“状态”列下的值是否为“已启动”。验证“启动类型”列下的值是否为“自动”。 如果“状态”值或“启动类型”值不正确,请按照下列步骤操作:
    1. 右键单击“TCP/IP NetBIOS Helper Service”,然后单击“属性”。
    2. 在“启动类型”列表中,单击“自动”。
    3. 在“服务状态”区域中,如果未启动服务,单击“启动”。
    4. 单击“确定”。
此外,请确保您尚未使用组策略对象禁用一个或多个所需的系统服务。使用组策略对象编辑器在“Computer Configuration/Windows Settings/Security Settings/System Services”文件夹中查看这些策略设置。

在 Windows Server 2003 和 Windows XP 上,您可以使用策略的结果集 MMC 管理单元 (Rsop.msc) 检查所有应用到计算机的策略设置。为此,请依次单击“开始”、“运行”,在“打开”框中键入  rsop.msc ,然后单击“确定”。

在 Windows 2000 上,使用 Gpresult.exe 命令行工具检查组策略结果。为此,请按照下列步骤操作:
  1. 从 Windows 2000 资源工具包安装 Gpresult.exe。

    也可以访问下面的 Microsoft“Gpresult.exe:Group Policy Results”(Gpresult.exe:组策略结果)网站来下载 Gpresult.exe:
  2. 在命令提示符下键入 gpresult /scope computer,然后按 Enter 键。
  3. 在输出的“应用的组策略对象”部分,注意应用到计算机帐户的组策略对象。
  4. 比较应用到计算机帐户的组策略对象,该帐户在域控制器上具有针对这些组策略对象的 SMB 签名策略设置。
注意 :如果 TCP/IP NetBIOS Helper 服务在许多桌面上被禁用,您可以使用以下 Microsoft Visual Basic 示例脚本来在组织单位 (OU) 中的所有计算机上启动 TCP/IP NetBIOS Helper 服务。

Microsoft 提供的编程示例只用于说明目的,不附带任何明示或默示的保证。这包括但不限于对适销性或特定用途适用性的默示保证。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。Microsoft 的支持工程师可以帮助解释某个特定过程的功能,但是他们不会修改这些示例以提供额外的功能或构建过程以满足您的特殊需求。
Set objDictionary = CreateObject("Scripting.Dictionary") 
i = 0 
Set objOU = GetObject("LDAP://OU=Computers, OU=OUName, OU=OUName, DC=OUName, 
DC=OUName,DC=CompanyName, 
DC=com") 
objOU.Filter = Array("Computer") 
For Each objComputer In objOU 
objDictionary.Add i, objComputer.CN 
i = i + 1 
Next 
For Each objItem In objDictionary 
strComputer = objDictionary.Item(objItem) 
Set objWMIService = 
GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & 
"\root\cimv2")

Set colServices = objWMIService.ExecQuery _ 
("Select * from Win32_Service where Name = 'LmHosts'") 
For Each objService In colServices 
If objService.StartMode = "Disabled" Then 
objService.Change( , , , , "Automatic") 
End If 
Next 
Next 
第四步:确保在所有计算机上都启用了分布式文件系统 (DFS)
所有的域控制器都必须运行分布式文件系统服务,因为 Sysvol 共享是一个 DFS 卷。此外,在所有计算机上的注册表中都必须启用 DFS 客户端。 

要确保分布式文件系统服务正在基于 Windows Server 2003 的域控制器上运行,请按照下列步骤操作:
  1. 单击“开始”,指向“管理工具”,然后单击“服务”。
  2. 在“服务”列表中,单击“分布式文件系统”服务。验证“状态”列下的值是否为“已启动”。验证“启动类型”列下的值是否为“自动”。 如果“状态”值或“启动类型”值不正确,请按照下列步骤操作:
    1. 右键单击“分布式文件系统”,然后单击“属性”。
    2. 在“启动类型”列表中,单击“自动”。
    3. 在“服务状态”区域中,如果未启动服务,单击“启动”。
    4. 单击“确定”。
要确保分布式文件系统服务正在基于 Windows 2000 Server 的域控制器上运行,请按照下列步骤操作:
  1. 单击“开始”,指向“程序”,指向“管理工具”,然后单击“服务”。
  2. 在“服务”列表中,单击“分布式文件系统”服务。验证“状态”列下的值是否为“已启动”。验证“启动类型”列下的值是否为“自动”。 如果“状态”值或“启动类型”值不正确,请按照下列步骤操作:
    1. 右键单击“分布式文件系统”,然后单击“属性”。
    2. 在“启动类型”列表中,单击“自动”。
    3. 在“服务状态”区域中,如果未启动服务,单击“启动”。
    4. 单击“确定”。
有关相关主题的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
834649 当基于 Windows 2000 的域控制器上未启动 DFS 时,客户机记录事件 ID 1030 和事件 ID 1058
要确保在所有的客户机上都启用分布式文件系统客户端,请按照下列步骤操作:
  1. 依次单击“开始”、“运行”,在“打开”框中键入 regedit,然后单击“确定”。
  2. 展开以下子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Mup
  3. 单击“Mup”,然后在右窗格中,搜索名为“DisableDFS”的 DWORD 值项。
  4. 如果存在“DisableDFS”项,并且数值数据为“1”,请双击“DisableDFS”。在“数值数据”框中,键入 0,然后单击“确定”。如果 DisableDFS 数值数据已经是“0”,或者不存在“DisableDFS”项,请不要进行任何更改。
  5. 退出注册表编辑器。
  6. 如果您更改了“DisableDFS”数值数据,请重新启动计算机。
有关相关主题的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
314494 组策略未能按照您所期望的方式应用;应用程序日志中记录“事件 ID 1058”和“事件 ID 1030”错误
第五步:检查 Sysvol 文件夹的内容和权限
默认情况下,Sysvol 文件夹位于 %systemroot% 文件夹中。Sysvol 文件夹包含域的组策略对象、Sysvol 和 Netlogon 共享以及文件复制服务 (FRS) 暂存文件夹。

如果 Sysvol 文件夹或 Sysvol 共享上的权限的限制过于严格,则组策略无法正确应用,并且会导致用户环境 (Userenv) 错误。此外,如果丢失了 Sysvol 共享或组策略对象,则可能发生 Userenv 错误。 
要确保 Sysvol 共享可用,请在命令提示符下对每个域控制器运行  net share  命令。为此,请按照下列步骤操作:
  1. 依次单击“开始”、“运行”,在“打开”框中键入 cmd,然后单击“确定”。
  2. 键入 net share,然后按 Enter 键。
  3. 在文件夹列表中查找“SYSVOL”和“NETLOGON”。
如果一个或多个域控制器丢失了 Sysvol 共享或 Netlogon 共享,则必须排查发生该问题的原因。 有关如何对 Windows 2000 Server 中丢失的 Sysvol 和 Netlogon 共享进行疑难解答的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
257338 Windows 2000 域控制器上丢失 SYSVOL 和 NETLOGON 共享疑难解答
有关如何在 Windows Server 2003 中重新生成 Sysvol 共享的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
315457 如何在域中重新生成 SYSVOL 树及其内容
在确定 Sysvol 共享可用后,请确保为 Sysvol 文件夹、Sysvol 共享和包含 Sysvol 文件夹的卷的根文件夹配置正确的权限。 有关 Sysvol 共享和 Sysvol 文件夹所需权限的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290647 在应用程序事件日志中每 5 分钟记录一次事件 ID 1000、1001
此外,在 Windows 2000 Server 上,必须授予 Everyone 组对包含 Sysvol 文件夹的卷的根文件夹的完全控制权限。在 Windows Server 2003 上,必须对 Everyone 组授予设置为“只有该文件夹”的“读取和执行”特殊权限,并且必须授予 domain\Users 组以下标准权限:
  • 读取和执行
  • 列出文件夹内容
  • 读取
此外,在 Windows Server 2003 上,domain\Users 组必须具有下列特殊权限:
  • 对“该文件夹,子文件夹和文件”的“读取和执行”权限。
  • 对“该文件夹和子文件夹”的“创建文件夹/附加数据”权限。
  • 对“只有子文件夹”的“创建文件/写入数据”权限。
验证 Sysvol 权限后,请确保 Sysvol 文件夹包含所需的组策略对象。要查找所需的组策略对象,请使用 Windows 2000 或 Windows Server 2003 Resource Kit 中的 Gpotool.exe 程序。

要下载 Windows 2000 Server Gpotool.exe 程序,请访问下面的 Microsoft“Gpotool.exe:Group Policy Verification Tool”(Gpotool.exe:组策略验证工具)网站: 要下载 Windows Server 2003 Resource Kit 工具,请访问下面的 Microsoft“Windows Server 2003 Resource Kit Tools”(Windows Server 2003 Resource Kit 工具)网站: 如果运行 Gpotool.exe 程序而不使用任何选项,该程序将扫描域中所有域控制器上的所有组策略对象。如果您使用  /checkacl  开关,则该工具也将扫描 Sysvol 访问控制列表 (ACL)。要获得运行 Gpotool.exe 程序时的详细输出,请使用  /verbose  开关。 

您也可以手动验证 SYSVOL 文件夹中的单个 GPO。例如,当 Userenv 1058 事件中的描述列出一个 GPO 的名称时,您就可以手动验证 SYSVOL 文件夹中的单个 GPO。您可以执行此操作以确保该 GPO 中包含 USER 文件夹、MACHINE 文件夹和 Gpt.ini 文件。要手动验证 SYSVOL 文件夹中的单个 GPO,请按照下列步骤操作:
  1. 打开一个命令提示符窗口。为此,请依次单击“开始”、“运行”,在“打开”框中键入 cmd,然后单击“确定”。
  2. 键入 at Time /interactive /next:cmd.exe,然后按 Enter 键,其中 Time 比当前时间晚 1 或 2 分钟,以 24 小时时间格式表示。例如,下午 1:03 用 24 小时时间格式表示为 13:03。
  3. 在上一个命令中指定的时间,会打开一个新的命令提示符窗口。键入 net use j:\\domainname.com\sysvol\domainname.com\Policies\{GUID,然后按 Enter 键,其中 GUID 是 Userenv 事件描述中提及的 GPO 的 GUID。例如,如果 Userenv 1058 事件描述为“此文件必须在 <\\Domain_Name.com\sysvol\Domain_Name.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984 F9}\gpt.ini>”,则您在命令中将使用的 GUID 是 31B2F340-016D-11D2-945F-00C04FB984F9。
  4. 键入 dir j:\*.*,然后按 Enter 键。
  5. 验证 USER 文件夹、MACHINE 文件夹和 Gpt.ini 文件是否列在 I 驱动器的文件夹列表中。如果丢失了任一文件夹和文件,则网络上的计算机可能会在应用程序日志中记录 Userenv 错误。
如果 Sysvol 文件夹中丢失了一个或多个组策略对象,请运行 Windows Server 2003 默认组策略还原工具 (Dcgpofix.exe) 或 Windows 2000 默认组策略还原工具 (Recreatedefpol.exe) 重新创建默认组策略对象。

Dcgpofix.exe 程序包含在 Windows Server 2003 中。有关 Dcgpofix.exe 程序的其他信息,请在命令提示符下运行  dcgpofix /?  命令。

有关 Recreatedefpol.exe 程序的信息,请访问下面的 Microsoft Windows 2000 默认组策略还原工具网站: 当您使用防病毒软件扫描 Sysvol 驱动器时,请确保设置了建议的排除项。使用防病毒软件进行扫描可以阻止对所需文件(如 Gpt.ini 文件)的访问。您必须为所有的实时、预定和手动防病毒扫描都配置这些排除项。 有关在基于 Windows 的服务器上运行防病毒程序时建议的排除项的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
822158 Windows 2000 或 Windows Server 2003 域控制器上的病毒扫描建议
第六步:确保对必要的组授予跳过遍历检查权限
必须对域控制器上的下列组授予跳过遍历检查权限:
  • Administrators
  • Authenticated Users
  • Everyone
  • Pre-Windows 2000 Compatible Access
要验证是否已在基于 Windows Server 2003 的域控制器上授予跳过遍历检查权限,请按照下列步骤操作:
  1. 单击“开始”,指向“管理工具”,然后单击“域控制器安全策略”。
  2. 展开“本地策略”,然后单击“用户权限分配”。
  3. 双击“跳过遍历检查”。
  4. 单击以选中“定义这些策略设置”复选框。
  5. 验证是否为此策略设置列出了 Administrators 组、Authenticated Users 组、Everyone 组和 Pre-Windows 2000 Compatible Access 组。 如果丢失上述任何组,请按照下列步骤操作:
    1. 单击“添加用户或组”。
    2. 在“用户和组名”框中,键入丢失的组的名称,然后单击“确定”。
  6. 单击“确定”关闭策略设置。
  7. 打开一个命令提示符窗口。为此,请依次单击“开始”、“运行”,在“打开”框中键入 cmd,然后单击“确定”。
  8. 键入 gpupdate /force,然后按 Enter 键。
要验证是否已在基于 Windows 2000 Server 的域控制器上授予跳过遍历检查权限,请按照下列步骤操作:
  1. 单击“开始”,指向“程序”,指向“管理工具”,然后单击“域控制器安全策略”。
  2. 依次展开“安全设置”、“本地策略”,然后单击“用户权限分配”。
  3. 双击“跳过遍历检查”。
  4. 单击以选中“定义这些策略设置”复选框。
  5. 验证是否为此策略设置列出了 Administrators 组、Authenticated Users 组、Everyone 组和 Pre-Windows 2000 Compatible Access 组。如果丢失上述任何组,请按照下列步骤操作:
    1. 单击“添加”。
    2. 在“用户和组名”框中,键入丢失的组的名称,然后单击“确定”。
  6. 单击“确定”关闭策略设置。
  7. 打开一个命令提示符窗口。为此,请依次单击“开始”、“运行”,在“打开”框中键入 cmd,然后单击“确定”。
  8. 键入 secedit /refreshpolicy machine_policy /enforce,然后按 Enter 键。
第七步:确保域控制器未处于日志折叠状态
要查看域控制器是否处于日志折叠状态,请在“事件查看器”中查看文件复制服务日志,并搜索 NTFRS 事件 ID 13568。事件 ID 13568 类似于以下事件 ID:

类型:警告 
来源:NtFrs 
类别:无 
事件 ID: 13568 
日期:DATE
时间:TIME
用户:N/A 
计算机:ServerName
描述:文件复制服务检测到复制集 "<1>" 在 JRNL_WRAP_ERROR。复制集名称是 :"<1>" 复制根路径是 :"<2>" 复制根卷是 : "<3>"

如果在域控制器上记录了 NTFRS 事件 ID 13568,请查看下面的 Microsoft 知识库文章,以获得有关如何排查日志折叠错误的信息:
292438 排查 Sysvol 和 DFS 副本集上的 journal_wrap 错误
第八步:运行 Dfsutil /PurgeMupCache 命令
使用  /PurgeMupCache  开关运行 Dfsutil.exe 程序来刷新本地 DFS/MUP 缓存信息。Dfsutil.exe 程序包含在 Windows 2000 Server 支持工具和 Windows Server 2003 支持工具中。 有关相关主题的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
842804 无法执行组策略处理,事件 1030 和 1058 被记录到域控制器的应用程序日志中
注:文章转载自http://support.microsoft.com/kb/887303/zh-cn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值