Windows Time not synchronizing – “Access is denied” error

ntppermissionstimewindows

My Windows 7 computer's time drifts every time I reboot, and resynchronizes either not at all or sporadically. When I go to Date and Time > Internet Time > Change settings… and click Update now, I get the message:

An error occurred getting the status of the last synchronization. Access is denied.

I have verified that the Windows Time Service is running.

Most surprisingly, when I run w32tm /query /configuration in an elevated command prompt, I still get:

The following error occurred: Access is denied (0x8007005).

I'm baffled at how I can have my access denied as an administrator. How can I get said access?

Best Answer

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.
Related Question