We use a PHP script for syncing time against a NTP time server. All of it works, but when working with windows server, the script fails.
Is there a modified version of NTP working inside the original windows server distribution?
Older versions of Windows Server uses SNTP, which while similar, is not the exact same thing as NTP. You will need a 3rd party package such as the one mentioned by mdpc to provide highly accurate NTP service. Another package available is Tardis 2000, which would provide an accurate NTP service as well. Please see this document for an explaination, and make sure that W32Time is disabled if you install a separate NTP service.
Zoredache is correct in mentioning that NTP support is built into the W32Time service; but the calculations used, and how the results are used afterwards, may be different from what your needs are. Keep in mind that the W32Time service, while flexible in its support of NTP, was meant to help with Active Directory due to its Kerberos underpinnings. I have observed several of our machines - servers and workstations - experience a slight time drift when relying on W32Time to keep things synchronized with the domain controller. The multi-second (or sometimes, minute) drift is usually OK and doesn't cause an issue for my work. If you need sub-second precision, you may want to read up a bit more about how W32Time works, and consider any potential issues.
I have successfully used a pre-compiled and packaged NTP client for Windows for several years. It IS the standard reference NTP package that is used by nearly all Linux systems for time synchronization including the configuration file. It properly installs itself as a service AND disables the default windows time sync. It is located at
http://www.meinbergglobal.com/english/sw/ntp.htm#ntp_stable
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
Nov 27, 2014 at 7:08
w32tm /resync
W32Time
service can act as both an NTP client and server. Of course if your Windows computer in a Domain, then you should be using domain-based type sync for your systems.