Windows Time not synchronizing - "Access is denied" error

Try the following to reset your Windows Time configuration to the defaults. From an elevated Command Prompt run:

net stop w32time
w32tm /unregister
w32tm /register
net start w32time

This should clear up the Access Denied errors.


Additionally, consider doing the following to configure Windows Time to use NTP servers provided by ntp.org and check for updated time every hour. I have found these NTP servers to be much more reliable than time.windows.com. While Microsoft suggests you use their time server, the ntp.org servers are among the few other NTP servers also recommended by Microsoft.

  1. Make sure your computer's timezone is correct and that its time is somewhat close to the correct time (adjust it manually if not).

    Note: Technically on non-domain computers Windows Time should be able to get updated time as long as the system clock is within 15 hours of the correct time, but your time will get adjusted more quickly if you're within a few minutes of the correct time.

  2. Run the following commands from an elevated Command Prompt:

    reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t reg_dword /d 3600 /f
    w32tm /config /manualpeerlist:"0.pool.ntp.org,0x1 1.pool.ntp.org,0x1 2.pool.ntp.org,0x1 3.pool.ntp.org,0x1" /syncfromflags:MANUAL /reliable:NO /update
    net stop w32time
    net start w32time
    w32tm /resync /rediscover
    

Detailed Explanation of the Above Commands:

  • The reg add command adds the SpecialPollInterval value to the registry with the data of 3600 which configures Windows Time to get updated time every hour (3600 seconds). Note that this works only if the 0x1 flag is specified when configuring NTP peer servers.
  • w32tm /config /manualpeerlist: configures the machine to use four ntp.org servers that access a large number of volunteer NTP servers using a load-balancing scheme. As described on the ntp.org website:

    The 0, 1, 2 and 3.pool.ntp.org names point to a random set of servers that will change every hour.

    The 0x1 flag is set for each server which is necessary for the SpecialPollInterval setting to have an effect.

  • The net stop and net start commands restart the Windows Time service and cause it to load the new configuration.
  • w32tm /resync /rediscover instructs Windows Time to contact an NTP peer server immediately and update the system time.