Windows Server operating system, when run as primary domain controller or secondary domain controller, the DC is deemed to be authoritative time server for itself and all other workstations that join the domain. Thus, the date and time of entire domain network depends on CMOS clocks, which tends to out of sync over time.

In Windows Server, including Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, the “Internet Time” tab on “Date and Time” applet is missing or hidden when joined with domain, hence user cannot set, modify or change the NTP time server or manually force sync the time with Internet time server, even though it’s possible to edit the date and time.

However, Windows Server does provide a way to synchronize itself with an external NTP server so that the system always maintain a correct and right time. This guide will show various methods that allow you to make Windows Server or domain controller to use and sync with external NTP time source.

Method 1: Microsoft Easy Fix Solution

Microsoft provides an easy fix solution that automatically configure external NTP time server sources that you specified, by replacing the placeholder names of Server1 and Server2 with the name of your NTP server followed by “,0x1”. For example, svr1.example.com,0x1, where multiple servers must be separated by a space. You do not have to specify more than one NTP server but it is recommended to do so for redundancy.

Download MicrosoftEasyFix50395.msi

Manual Alternative
If you’re control freak, you can manually configure an authoritative time source on the forest root PDC of an AD forest to synchronize with an external time source by following these steps:

  1. Change the server type to NTP. To do this, follow these steps:
    1. Select Start -> Run, type regedit, and then select OK.
    2. Locate and then click the following registry subkey:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type

    3. In the pane on the right, right-click Type, and then select Modify.
    4. In Edit Value, type NTP in the Value data box, and then select OK.
  2. Set AnnounceFlags to 5. To do this, follow these steps:
    1. Locate and then click the following registry subkey:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags

    2. In the pane on the right, right-click AnnounceFlags, and then select Modify.
    3. In Edit DWORD Value, type 5 in the Value data box, and then select OK.
  3. Enable NTPServer. To do this, follow these steps:
    1. Locate and then click the following registry subkey:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer

    2. In the pane on the right, right-click Enabled, and then select Modify.
    3. In Edit DWORD Value, type 1 in the Value data box, and then select OK.
    4. Specify the time sources. To do this, follow these steps:
      1. Locate and then click the following registry subkey:

        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

      2. In the pane on the right, right-click NtpServer, and then select Modify.
      3. In Edit Value, type Peers in the Value data box, and then select OK.
  4. Configure the time correction settings. To do this, follow these steps:
    1. Locate and then click the following registry subkey:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPosPhaseCorrection

    2. In the pane on the right, right-click MaxPosPhaseCorrection, and then select Modify.
    3. In Edit DWORD Value, click to select Decimal in the Base box.
    4. In Edit DWORD Value, type TimeInSeconds in the Value data box, and then select OK.
  5. Locate and then click the following registry subkey:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxNegPhaseCorrection

  6. In the pane on the right, right-click MaxNegPhaseCorrection, and then select Modify.
  7. In Edit DWORD Value, click to select Decimal in the Base box.
  8. In Edit DWORD Value, type TimeInSeconds in the Value data box, and then select OK.
  9. Close Registry Editor.
  10. At the command prompt, type the following command to restart the Windows Time service, and then press Enter:
    net stop w32time && net start w32time

Method 2: Using w32tm Command

Though Microsoft provides an official way to set external NTP time source as authoritative time server for a Windows Server or Windows Workstation, it may not work. Instead, you need to rely on another Windows Time Services tool provided by Microsoft to change the force change the NTP time server and sync with external time source.

To use w32tim to set an external authoritative NTP server on a domain controller (primary or secondary), Windows Server or Windows Workstation, follow these steps:

  1. Run an elevated Command Prompt.
  2. Run the following command to set an authoritative time source:
    w32tm /config /manualpeerlist:"ntp_server" /syncfromflags:manual /reliable:yes /update

    Replace ntp_server with actual server name or IP address of NTP server which you want to use as the time source, such as 0.us.pool.ntp.org. To specify multiple NTP servers, separate them with space.

    In newer operating systems such as Windows 10, /update flag may not be supported. However, the command still work without the /update option.
  3. Restart the time service with the following commands:
    net stop w32time
    net start w32time
  4. Resync the time with the following command:
    w32tm /resync
  5. To verify the time sync status:
    w32tm /query /status
    
    
Once done, the Windows servers, Active Directory (AD) primary or secondary domain controllers or workstations will now sync their clock with the NTP time server that you specified, assuming the time sources are working properly, and the connection is not blocked by firewall or other security features.
Note
You can use w32tm /query to inquire the status and settings of Windows Time Services. For example, To list out the NTP sources used by the system:
w32tm /query /source

To list out peers :

w32tm /query /peers