Sync system time automatically at Windows startup

Posted on June 19, 2021 ; this post is older than 3 years and might contain out-of-date information.

Update: The solution presented below was working fine on my system for a few months but stopped syncing time eventually even though it is still being started automatically. Feel free to give it a try nonetheless as it appears to be working for many other people still but know that this seems to be another one of Windows’ great unreliable mysteries…

Original post: Unlike most other operating systems, Windows 10 doesn’t sync the time with an internet service at startup by default. This can become an issue, if your mainboard’s built-in clock provides a wrong time or uses a different time zone.

If the mainboard’s battery responsible for storing time dies, it can become an even more annoying problem, because Windows will always start with an ever-growing time skew, which can eventually result in web browsing become a problem due to Windows considering websites’ SSL certificates not yet valid - effectively rendering browsing the majority of web pages impossible!

This can be worked around by starting Windows’ time sync service automatically at startup. Below you’ll find instructions on doing this with the graphical Services console and PowerShell.

Services console

  1. Press Windows Key + r at the same time to open the Run dialogue
  2. Type services.msc and hit OK to run it - the Services window opens Run dialog
  3. In the list, scroll to Windows Time (in german: Windows-Zeitgeber) and right-click on it, click Properties in the context menu
  4. In the Properties window change Startup type to Automatic, click Start and click OK to save Windows time service properties window

PowerShell

  1. Start PowerShell as admin
  2. Run the following command:
Set-Service -Name W32Time -Status running -StartupType automatic

If PowerShell complains about not finding a service with the specified name, you can run the following command to get a list of all available services - Microsoft might have changed the time service’s name.

Get-Service