TimeServ is Part of Microsoft's Windows NT Resource Kit (3.5 or later); you must license it from Microsoft Press (you can't download TimeServ from here).
Note: Windows 2000 and XP include a built-in time service which is equivalent to TimeServ's Type=Primary and Secondary (for sychronization) or NTP (typically used over internet to obtain accurate time). When MS officially told me that (before year 2000), I stopped enhancing TimeServ. Therefore the target users of TimeServ are only those still using older Windows NT (perhaps those with special hardware clocks for accurate time). For some Windows 2000 info, try http://www.microsoft.com/windows2000/docs/wintimeserv.doc
If you're just looking for the device driver necessary to access ISA cards, download GENPORT.EXE (save to disk and follow steps in TimeServ documentation).
To Doug Hogarth's Home Page (which has additional pointers relating to time)
TimeServ is a service for Windows NT which can set the PC's time accurately from a variety of sources, or synchronize the time between various networked machines. As mentioned above, it is on a CD-ROM as part of a larger offering of utilities and documentation.
The large variety and number of sources of time supported typically have very accurate time traceable to national standards. TimeServ always attempts to achieve the full accuracy allowed by such sources. Even though you may only need your clock set accurately within a few seconds, it is typically set better than 10 milliseconds (the resolution of the clock on a typical Windows NT machine).
Although setting all machines to the same accurate time effectively synchronizes them, obtaining the accurate time is sometimes an expensive operation. Often the important issue is that networked machines be synchronized (and the accuracy is less important). TimeServ can get the time from an NTP server, and it can also get the time from other Windows-based networking machines (such operation can be thought of as a fancy version of the NET TIME \\server /SET /Y command).
There are a variety of "time set" programs that run under Windows, but few that run under Windows NT. TimeServ only runs on Windows NT, and it runs as a service so a user doesn't need to be logged on (after initial installation). Status messages are posted to the event log, which can be reviewed remotely.
There have been seven external releases of TimeServ as of December '97. This section will attempt to describe some of the most recent (unreleased) work, as well as some history of the various versions (not including various items such as compiler updates or internal changes). TimeServ was initially written on my own time while I had an unrelated job at Microsoft, and I have arranged to still maintain it for Microsoft as appropriate.
RTFM: Common Questions, Event Log entries, etc.
Notice to users of Type=Internet: I apologize for any inconvenience, but in Aug'97
another bug was encountered similar to the oldest TimeServ version, causing "100% CPU
use" when I failed to detect a missing service on USNO's server (their hardware has
changed and now non-NTP services are disabled).
If possible, Type=Internet users should consider switching to Type=NTP in
your %SystemRoot%\timeserv.ini file instead, and NTPServer=tick.usno.navy.mil (or some
other server such as tock.usno.navy.mil). Since Type=NTP is more efficient, the only
reason to keep using Type=Internet is if you are behind a firewall which passes TCP but
not UDP (datagrams). After such change, don't forget to run "TimeServ -update"
and restart the service.
If you can't switch to Type=NTP, I have made code changes to stop using USNO (for
Type=Internet) which Microsoft has posted in the i386 or (DEC) alpha directory under ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/
(or the Y2K ftp site mentioned below).
Don't forget that before restarting the Time Service you must MOVE timeserv.exe and
timeserv.dll to your %SystemRoot%\system32 directory.
What about Year 2000 (Y2K, which is a leap year)? As far as I know, the only related problems are that Type=Trimble might have trouble starting around Aug 21 '99 or around 20 years later (depending on your version), Type=NTP might have trouble starting around 2036, and some other Types might have trouble starting around year 2090. Of course you should also have a recent version of Windows NT (install service packs) and check with your manufacturer of any underlying devices (such as potential GPS week rollover issues with bc627AT or Acutime). If problems are reported (first be sure you are using a recent version such as the update from the 1997 MS FTP site linked elsewhere on this page), I'll do my best to provide fixes; If you receive the event "Attempt to set date prior to 1995 aborted", please notify me of the details such as the Type= (and be glad that TimeServ has always had that failsafe).
In January 2000 I received two potentially Y2K-related bug reports (the first was with Type=Trimble which as mentioned above I have not been able to support fully since Aug'99). However, it seems that both cases were related to having a bad .exe, perhaps from cluster server, so there was nothing for me to fix. Cluster server has its own timeserv.exe which does not support all my Types. If necessary, non-cluster users can get a recent .exe from ftp://ftp.microsoft.com/reskit/y2kfix/.
What about TimeServ on Windows 2000/XP? First, users of special ISA timing cards will need a new installation method. Second, Windows 2000/XP have a built-in time service which presumably is similar/equivalent to Type=Primary | Secondary | NTP. NET TIME /help tells how to specify the NTPServer. See document linked from top of this one.
Need another description of synchronization (primary, secondary, etc)? Try Tao Zhou's "Time Synchronization in an NT Network" article in the Feb.'97 issue of Windows NT Magazine.
Why does Type=NMEA only support the ZDA sentence? Other common sentences such as GPGGA which appear to contain the time don't contain the date and really contain the "time of fix" rather than the current time. Since such time might be around one second old while tracking and probably would not be updated while not tracking, I choose not to support them (sorry).
Do you care about leap seconds? TimeServ knows about leap seconds, but currently doesn't schedule the insertion for the exact moment at midnight. Instead, TimeServ will just insert the second at the first synchronization after the source time has adjusted, and log the event (typically time will jump backward for that one second). So in a tiered environment, the leap second might first get inserted on the master (for example when it calls NISTACTS), then when any primary machines request the time from the master, and finally when any secondary machines request the time from a primary. For types which warn of a coming leap second, an experimental version of TimeServ optimizes the synchronization time to be shortly after the moment of leap second insertion, with certain allowances for randomization (to spread potential logjams at servers) and delays due to tiered structure (aiming toward re-synchronization within 15 minutes).
Want to completely uninstall TimeServ rather than just use Control Panel-Services-Startup-Disabled? Use REGEDT32 to carefully select SYSTEM\CurrentControlSet\Services\TimeServ and delete that entire key. You can then delete all TimeServ.* files (and reboot).
Are other devices than the ones listed supported? In some cases such as hopf radio controlled clocks with serial interface the manufacturer may document how to configure compatibly. Other manufacturers are welcome to contact me.
A user advises to make sure that your timeserv.ini file doesn't have the +R read-only attribute before editing, and that timeserv.ini doesn't have something like .txt added to the end by notepad.
Looking for something that TimeServ doesn't support such as RFC-868 server/client or
Internet proxy server? I've attempted to describe some that can be downloaded immediately
(entries in the table might be incomplete). For an NTP server there is the xntpd source
code. Typically the servers could be used (with their client disabled) in conjunction with
TimeServ. For purposes of this table, accuracy is an estimate as observed over an analog
dial-up PPP session.
RFC-868 server | RFC-868 client | Proxy support | Win9x/GUI | WinNT service | Accuracy(sec) | |
Tardis | Y | Y | ? | Y | Y | |
UniTime | Y | Y | N/Y | Y | ||
TimeSync | N | Y | N | Y | ||
AtomTime95 | N | N | Y | Y | N | +.85/-1 |
YATS32 | Y | Y | Y | Y | Y | |
RCC Time Server | Y | Y | Y | |||
Dimension 4 | Y | Y | ||||
Domain Time | Y | Y | Y | Y | Y | |
NTPTime | N | N | Y/N | Y | ||
AboutTime | Y | ? | Y |