W32Time: Sync: SpecialPollInterval may be ignored on workgroup computers

Applies to: Windows Server 2012 StandardWindows Server 2012 StandardWindows Server 2012 R2 Standard More

Symptoms


Assume that you modify W32time settings to always run and that one of the following conditions is true:
 
  • You use the default workstation settings.
  • You use custom NTP synchronization settings with a large SpecialPollInterval setting value.

In this scenario, the NTP client does not synchronize time at the SpecialPollInterval period as expected.

Cause


Because of the way that the Windows Time Service handles large SpecialPollInterval values, time may be synchronized from the NTP server at longer intervals than expected.

Resolution


Workaround 1

Specify a smaller SpecialPollInterval value than the default value. The default values are as follows:
 
MinPollInterval = 0xA (== 2^10 seconds == 1024 seconds)
MaxPollInterval = 0xF ( == 2^15 seconds == 32768 seconds)
SpecialPollInterval = 604800 seconds

Specify a SpecialPollInterval value that falls between the MinPollInterval and MaxPollInterval. An example value is 3600 seconds (== 1 hour). 

To configure W32time with the new setting, follow these steps:
 
  1. Start Registry Editor.
  2. Change the value of the following registry key:

    HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient

    Value name: SpecialPollInterval
    Default: 604800
    Modified value: 3600
  3. Restart the Windows Time Service, or run the following command to signal W32time about the modified configuration:

    w32tm /config /update

Workaround 2

Use the built-in poll interval adjustments based on MinPollInterval, MaxPollInterval instead of using SpecialPollInterval. This built-in tool automatically adjusts the polling interval from MinPollInterval all the way up to MaxPollInterval if the client machine keeps fairly accurate time. You need only modify a flag in the NtpServer configuration in order to switch from SpecialPollInterval to the automatic poll interval, as follows:
 
  1. Start Registry Editor.
  2. Change the value of the following registry key:

    HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Services\W32Time\ParametersValue name: NtpServer

    Default value: time.windows.com, 0x9
    Modified value: time.windows.com, 0x8
  3. Restart the Windows Time service, or run the following command:

    w32tm /config /update