Windows as NTP Time Server

Most consumer devices do not really know what time it is. The hardware inside of them is also somewhat cheap and not very accurate. Even if you manually set the time in a device it would slowly drift out of accuracy. Within a month it could be off by a matter of hours. Therefore, these devices must constantly ask a centralized location for the correct time. 
NTP is the Network Time Protocol. It is a way for a device to get the current time. Typically, a device like a router has an NTP Server inside of it. So devices can sync with the router. However, sometimes it is handy to have direct control over the NTP server (like for a demo). Windows itself can act as this NTP Time Server, but this is not enabled by default. You must use Vista/7/8/10.

To setup Windows as NTP Time Server:
  1. Open Notepad and paste:
    Windows Registry Editor Version 5.00
  2. Save As time_enable.reg
  3. Double-click this new file to run it and allow it to be imported into Windows Registry. 
  4. Restart service "w32time" by either:
    a.) In Start button type services.msc and click to open. Then in the services window locate and restart "Windows Time".
    b.) In a Command Prompt type: net stop w32time && net start w32time
  5. Open UDP Port 123 in any applicable local Windows firewalls.

To restart the Time Server: net stop w32time && net start w32time 
To resync the Time Server: w32tm /resync /rediscover
To check what time a timeserver your PC is currently offering: w32tm /monitor /computers:localhost
To check what time an external timeserver is currently offering: w32tm /monitor /computers:x.x.x.x