如果版本号匹配,那么为什么组策略诊断实用程序 GPOTool 会报告两个域控制器之间的 GPO 版本不匹配?
Policy {GUID}
Error: Version mismatch on dc1.domain.org, DS=65580, sysvol=65576
Friendly name: Default Domain Controllers Policy
Error: Version mismatch on dc2.domain.org, DS=65580, sysvol=65576
Details:
------------------------------------------------------------
DC: dc1.domain.org
Friendly name: Default Domain Controllers Policy
Created: 7/7/2005 6:39:33 PM
Changed: 6/18/2012 12:33:04 PM
DS version: 1(user) 44(machine)
Sysvol version: 1(user) 40(machine)
Flags: 0 (user side enabled; machine side enabled)
User extensions: not found
Machine extensions: [{GUID}]
Functionality version: 2
------------------------------------------------------------
DC: dc2.domain.org
Friendly name: Default Domain Controllers Policy
Created: 7/7/2005 6:39:33 PM
Changed: 6/18/2012 12:33:05 PM
DS version: 1(user) 44(machine)
Sysvol version: 1(user) 40(machine)
Flags: 0 (user side enabled; machine side enabled)
User extensions: not found
Machine extensions: [{GUID}]
Functionality version: 2
答案1
您的问题是由默认域控制器策略 DS 和 Sysvol 部分之间的版本不匹配引起的,而不是两个 DC 之间的差异。您的 DC 彼此同步,但它们同步的数据与自身不同步。您要做的就是将 DS 和 Sysvol 版本设置为相同的值。为安全起见,请使用1(user) 45(machine)
。您需要输入的值是65581
(1 * 65536 + 45 = 65581)。\\domainname\sysvol\policies\{Default_Domain_Controllers_Policy_GUID}\gpt.ini
在记事本中打开并设置Version=65581
。现在使用 ADSIEdit、ADExplorer、adfind 等,浏览到CN={Default_Domain_Controllers_Policy_GUID},CN=Policies,CN=System,DC=domainname
并设置versionnumber
为65581
。现在去吃午饭,回来后再次运行 GPOTool。所有版本号都应报告为65581
和/或1(user) 45(machine)
。
注意:默认域控制器策略 GUID 始终为 6AC1786C-016F-11D2-945F-00C04FB984F9,但请验证这实际上是 GUID,以防有人重命名它并创建了另一个具有相同名称的 GPO。
有关如何计算和使用 GPO 版本号的更多详细描述,请参阅以下页面:
答案2
这并不是说您的 DC 版本不匹配,而是说您的某个 GPO 版本不匹配。
您需要找到有问题的策略(“策略 {GUID}”),然后在 DC 上的 sysvol 文件夹下,导航到其文件夹 (\DC\sysvol\policies{GUID}),并检查两个 DC 上的 GPT.INI 文件。该文件中会有一个版本号,而不同 DC 上的版本号会有所不同 - 这就是它抱怨的版本不匹配问题。
纠正它取决于导致不匹配的具体原因 - 您可以通过编辑 GPT.ini 中的版本号来纠正它,或者它可能是由某些更大的问题引起的,例如有故障的 FRS 副本集、特定 GPO 上的 ACL 设置等。没有足够的信息来确定根本原因到底是什么。
答案3
我会查看您的 AD 环境是否处于日志覆盖状态。我们遇到了同样的问题,不得不进行 D2 还原才能使所有 GPO 恢复到一致状态。