为 Azure 中的 Active Directory Windows 虚拟机配置时间机制

适用于: ✔️ Windows 虚拟机

使用本指南了解如何为属于 Active Directory 域的 Azure Windows 虚拟机设置时间同步。

Active Directory 域服务中的时间同步层次结构

应通过仅允许 PDC 访问外部时间源或 NTP 服务器来管理 Active Directory 中的时间同步。

然后,所有其他域控制器将根据 PDC 同步时间,所有其他成员将从满足该成员的身份验证请求的域控制器获取时间。

如果在 Azure 中托管的虚拟机上运行 Active Directory 域,请按照以下步骤正确设置时间同步。

注意

本指南重点介绍如何使用“组策略管理”控制台执行配置。 可以使用命令提示符、PowerShell 或通过手动修改注册表来获得相同的结果;但这些方法不属于本文的介绍范围。

使用 GPO 使 PDC 与外部 NTP 源同步

若要检查 PDC 中的当前时间源,请从提升的命令提示符运行 w32tm /query /source,并记下输出以便以后进行对比。

  1. 在“开始”菜单中运行 gpmc.msc。
  2. 浏览到要在其中创建 GPO 的林和域。
  3. 在容器“组策略对象”中创建一个新的 GPO,例如“PDC 时间同步”。
  4. 右键单击新创建的 GPO 并编辑。
  5. 导航至“计算机配置”->“管理模板”->“系统”->“Windows 时间服务”下的“全局配置设置”策略。
  6. 将其设置为“已启用”,并将 AnnounceFlags 参数配置为 5。
  7. 导航到“计算机配置”->“管理模板”->“系统”->“Windows 时间服务”->“时间提供程序”。
  8. 双击“配置 Windows NTP 客户端”策略并将其设置为“已启用”,将参数“NTPServer”配置为指向时间服务器的 IP 地址或 FQDN 后接 ,0x9(例如 131.107.13.100,0x9),并将“类型”配置为“NTP”。 对于所有其他参数,可以使用默认值,或者根据企业需求使用自定义参数。
  9. 单击“下一个设置”按钮,将“启用 Windows NTP 客户端”策略设置为“已启用”,然后单击“确定”
  10. 在新创建的 GPO 的“范围”选项卡中,导航到“安全筛选”并突出显示“经过身份验证的用户”组 -> 单击“删除”按钮 ->“确定”->“确定”
  11. 创建 WMI 筛选器以动态获取保存 PDC 角色的域控制器:
    • 在“组策略管理”控制台中,导航到“WMI 筛选器”,右键单击它并选择“新建”。
    • 在“新建 WMI 筛选器”窗口中,为新筛选器指定名称,例如“获取 PDC 模拟器”-> 填写 “描述”字段(可选)-> 单击“添加”按钮。
    • 在“WMI 查询”窗口中,保持“命名空间”不变,在“查询”文本框中粘贴以下字符串 Select * from Win32_ComputerSystem where DomainRole = 5,然后单击“确定”按钮。
    • 返回“新建 WMI 筛选器”窗口,单击“保存”按钮。
  12. 在新创建的 GPO 的“范围”中,导航到“WMI 筛选”下拉菜单并选择之前创建的 WMI 筛选器,然后单击“确定”。
  13. 在新创建的 GPO 的“范围”选项卡中,导航到“安全筛选”,单击“添加”按钮并浏览以查找到“域控制器”组,然后单击“确定”按钮。
  14. 将 GPO 链接到“域控制器”组织单位。

注意

系统最多可能需要 15 分钟才能反映出这些更改。

从提升的命令提示符重新运行 w32tm /query /source,并将输出与在配置开始时记下的输出进行比较。 现在,它将设置为所选的 NTP 服务器。

提示

如果你要加快在 PDC 上更改 NTP 源的过程,请从权限提升的命令提示符运行 gpupdate /force,接着运行 w32tm /resync /nowait,然后重新运行 w32tm /query /source;输出应是你在上述 GPO 中使用的 NTP 服务器。

成员的 GPO

通常,Active Directory 域服务中的 NTP 遵循本文开头提到的 AD DS 时间层次结构,且无需进一步的配置。

尽管如此,托管在 Azure 中的虚拟机的特定安全设置由云平台直接应用于这些虚拟机。

对于非域控制器的所有其他域成员,需要修改注册表,将 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider 下的项 Enabled 中的值设置为 0

重要

请记住,如果没有正确修改注册表,可能会出现严重问题。 因此,请务必认真遵循这些步骤,并在几个测试虚拟机上进行测试,以确保获得预期的结果。 为提高保护程度,请在修改之前备份注册表。 那么,如果发生问题,你也可以恢复注册表。 有关如何备份和还原 Windows 注册表的信息,请按照以下步骤操作。

备份注册表

  1. 在“开始”中键入“regedit.exe”,然后按 Enter。 如果收到管理员密码提示或确认提示,请键入密码或进行确认。
  2. 在“注册表编辑器”窗口中,找到并单击要备份的注册表项或子项。
  3. 在“文件”菜单中选择“导出”。
  4. 在“导出注册表文件”对话框中,选择要将备份副本保存到的位置,在“文件名”字段中键入备份文件的名称,然后单击“保存”。

还原注册表备份

  1. 在“开始”中键入“regedit.exe”,然后按 Enter。 如果收到管理员密码提示或确认提示,请键入密码或进行确认。
  2. 在“注册表编辑器”窗口中,从“文件”菜单中选择“导入”。
  3. 在“导入注册表文件”对话框中,选择保存备份副本的位置,选择备份文件,然后单击“打开”。

使用 GPO 禁用 VMICTimeProvider

配置以下组策略对象,使域成员能够与其相应 Active Directory 站点中的域控制器同步时间:

若要检查当前时间源,请登录到任一域成员,在权限提升的命令提示符下运行 w32tm /query /source,并记下输出供稍后比较。

  1. 在域控制器中,转到“开始”并运行 gpmc.msc。
  2. 浏览到要在其中创建 GPO 的林和域。
  3. 在容器“组策略对象”中创建一个新的 GPO,例如客户端时间同步。
  4. 右键单击新创建的 GPO 并编辑。
  5. 导航到“计算机配置”->“首选项”->Windows 设置 - 右键单击“注册表”->“新建”->“注册表项”>
  6. 在“新建注册表属性”窗口中设置以下值:
    • 操作:更新
    • 配置单元:HKEY_LOCAL_MACHINE
    • 项路径:浏览到 SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider
    • 值名称:键入“Enabled”
    • 值类型:REG_DWORD
    • 值数据:键入“0”
  7. 对于所有其他参数,请使用默认值并单击“确定”
  8. 将 GPO 链接到成员所在的组织单位。
  9. 等待一段时间,或手动对域成员强制实施组策略更新。

返回到域成员,在权限提升的命令提示符下重新运行 w32tm /query /source,并将输出与在配置开始时记下的输出进行比较。 现在,它将设置为满足成员身份验证请求的域控制器。

后续步骤

下面是有关时间同步的更多详细信息的链接: