配置NTP服务器,为客户端提供时间同步服务。
如果计算机是Active Directory域控制器,则NTP服务器功能已自动启动。
因此,下面的示例是计算机在工作组环境中启用NTP服务器功能。
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
# 确认当前设置(以下为默认设置)
PS C:\Users\Administrator> Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\NtpServer"
AllowNonstandardModeCombinations : 1
ChainDisable : 0
ChainEntryTimeout : 16
ChainLoggingRate : 30
ChainMaxEntries : 128
ChainMaxHostEntries : 4
DllName : C:\Windows\system32\w32time.dll
Enabled : 0
EventLogFlags : 0
InputProvider : 0
RequireSecureTimeSyncRequests : 0
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32
time\TimeProviders\NtpServer
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32
time\TimeProviders
PSChildName : NtpServer
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
# 启用 NTP 服务器功能
PS C:\Users\Administrator> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\NtpServer" -Name "Enabled" -Value 1
# 将 [AnnounceFlags] 设置为 5
# 数字表示
# 0x00:不是时间服务器
# 0x01 : 始终定时服务器
# 0x02:自动时间服务器
# 0x04 : 始终可靠的时间服务器
# 0x08:自动可靠的时间服务器
PS C:\Users\Administrator> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\services\W32Time\Config" -Name "AnnounceFlags" -Value 5
# 重新启动 Windows 时间服务
PS C:\Users\Administrator> Restart-Service w32Time
# 如果 Windows 防火墙正在运行,请允许 NTP 端口
PS C:\Users\Administrator> New-NetFirewallRule `
-Name "NTP Server Port" `
-DisplayName "NTP Server Port" `
-Description 'Allow NTP Server Port' `
-Profile Any `
-Direction Inbound `
-Action Allow `
-Protocol UDP `
-Program Any `
-LocalAddress Any `
-LocalPort 123
配置NTP客户端以将时间与NTP服务器同步。
NTP客户端设置在Windows默认情况下配置为NTP服务器【time.windows.com】,因此,如果连接Internet的环境计算机,则时间和日期已经同步。
此外,如果计算机位于 Active Directory 域中,则NTP客户端设置也配置如下,因此通常不需要更改设置。
* 域控制器与域中的PDC同步时间 * 域中的PDC与父域中的PDC同步时间或与其他域控制器同步时间 * 客户端计算机与客户端现在登录的域控制器同步时间在工作组环境计算机中,可以将默认NTP服务器更改为其他服务器,如下所示。
2.1 使用管理员权限运行 PowerShell 并配置。
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
# 确认当前同步 NTP 服务器
PS C:\Users\Administrator> w32tm /query /source
time.windows.com,0x8
# 更改目标 NTP 服务器(替换为时区服务器)
# 数字表示
# 0x01 : 使用特殊轮询间隔
# 0x02 : UseAsFallbackOnly
# 0x04 : 以 SymmetricActive 模式发送请求
# 0x08 : 以客户端模式发送请求
PS C:\Users\Administrator> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\w32time\Parameters" -Name "NtpServer" -Value "ntp.ntsc.ac.cn,0x8"
# 重新启动 Windows 时间服务
PS C:\Users\Administrator> Restart-Service w32Time
# 手动重新同步
PS C:\Users\Administrator> w32tm /resync
Sending resync command to local computer
The command completed successfully.
# 验证状态
PS C:\Users\Administrator> w32tm /query /status
Leap Indicator: 0(no warning)
Stratum: 2 (secondary reference - syncd by (S)NTP)
Precision: -23 (119.209ns per tick)
Root Delay: 0.0154647s
Root Dispersion: 7.7603588s
ReferenceId: 0x85F3EEF3 (source IP: 133.243.238.243)
Last Successful Sync Time: 05/26/2024 11:05:40 PM
Source: ntp.ntsc.ac.cn,0x8
Poll Interval: 6 (64s)
2.2 如果计算机位于 Active Directory 域环境中,并且他是Forrest Root,同步目标通常配置为【本地CMOS时钟】(硬件时钟),然后,如果要将设置从【本地CMOS时钟】更改为其他网络NTP服务器,请按如下方式设置。
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
# 在AD域环境中,[类型]通常设置为[NT5DS]
PS C:\Users\Administrator> (Get-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\w32time\Parameters").GetValue("Type")
NT5DS
# 在 Forrest Root 的域控制器上,
# 如果目标是[本地CMOS时钟],则将[类型]更改为[NTP]
# 接下来,在[1]部分中以相同的方式更改为NTP服务器
PS C:\Users\Administrator> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\w32time\Parameters" -Name "Type" -Value "NTP"