Geoff Chappell - Software Analyst
The SERVICES.EXE program appears only in NT versions of Windows. Each new Windows package brings at least a change of the minor version number.
File Version | Distribution |
---|---|
3.51 | Windows NT 3.51 |
4.0 | Windows NT 4.0 |
5.0 | Windows 2000 |
5.1 | Windows XP |
5.2 | Windows Server 2003 |
6.0 | Windows Vista |
The following builds have been inspected for these notes. Most are from MSDN discs. Some, especially since Microsoft greatly reduced its shipment of operating systems on MSDN discs, are from service packs downloaded (typically as self-extracting executables) from a Microsoft website.
Special mention must be made of the very oldest builds. Even among the many discs that I retain from MSDN subscriptions in the mid-1990s, what was then the new Windows that is entirely its own operating system rather than a large DOS program goes no further back than Windows NT 3.51. For all practical effect, Microsoft informally disowned the early versions, even for its so-called Archive editions. For decades I had little choice but to treat Windows NT 3.51 as the dawn of time for these notes. In 2017 someone pointed me to an online collection of earlier builds. The sample is inevitably incomplete. The provenance is unknown. I have since sought more: the WinWorld online museum is notable.
Builds are arranged in increasing order of the file version as recorded in the executable’s resources. This version number is readily visible using Windows Explorer either in a so-called infotip for the file or by accessing the Version tab in the Properties dialog for the file. Programmers know this version number as coming from the so-called root block of the version-information resource, specifically from the dwFileVersionMS and dwFileVersionLS members of a VS_FIXEDFILEINFO structure.
The date stamp shown for each version is more obscure. File dates are easily modified after the executable is built and are anyway liable to be shown differently when read from different time zones. However, there is in each executable’s header a date stamp which is set when the executable is built and which is not commonly changed afterwards. It is readily accessible to anyone with programming knowledge and appropriate tools, e.g., Microsoft’s own DUMPBIN utility.
Any one-person study of Windows—and please remember that the list below exists only as a catalogue of which builds I have obtained for study—is much too intensive for practical coverage of pre-release builds, hot fixes and other updates.
Access to pre-release builds anyway tends to come with constraints and compromise that other researchers may tolerate (and even be happy with) but which I do not. None of this work is done with any sort of assistance from Microsoft beyond the binaries, as published by the tens and even hundreds of millions, and the same documentation and other support, e.g., public symbol files for debugging, that’s available to all Windows programmers.
File Version | File Header Date Stamp | File Size | Package |
---|---|---|---|
3.51.1037.1 | 2FC50882 (26th May 1995) | 109,792 | Windows NT 3.51 |
3.51.1037.6 | 3214A6E4 (17th August 1996) | 110,304 | Windows NT 3.51 SP5 |
4.0.1371.1 | 31ED2E18 (18th July 1996) | 131,344 | Windows NT 4.0 |
4.0.1381.4 | 33371D51 (15th March 1997) | 131,344 | Windows NT 4.0 SP3 |
4.0.1381.129 | 361BE652 (8th October 1998) | 135,440 | Windows NT 4.0 SP4 |
4.0.1381.135 | 36A8D69B (23rd January 1999) | 135,440 | Windows NT 4.0 SP5 |
4.0.1381.164 | 36D214A8 (23rd February 1999) | 135,440 | Windows NT 4.0 SP6 |
5.0.2134.1 | 3814AD6E (26th October 1999) | 88,848 | Windows 2000 |
5.0.2195.3940 | 3C9D16F0 (24th March 2002) | 88,848 | Windows 2000 SP3 |
5.0.2195.6700 | 3E9CD9E0 (16th April 2003) | 89,360 | Windows 2000 SP4 |
5.1.2600.0 | 3B7DE0C7 (18th August 2001) | 101,376 | Windows XP Windows XP SP1 |
5.1.2600.2180 | 41107EB3 (4th August 2004) | 108,032 | Windows XP SP2 |
5.2.3790.0 | 3E801837 (25th March 2003) | 104,448 | Windows Server 2003 |
5.2.3790.1830 | 42435DF7 (25th March 2005) | 110,080 | Windows Server 2003 SP1 |
5.2.3790.3959 | 45D6A04E (17th February 2007) | 111,104 | Windows Server 2003 SP2 |
6.0.6000.16386 | 4549ADD1 (2nd November 2006) | 279,552 | Windows Vista |
There seems to be no SERVICES.EXE in Windows 2000 Service Packs 1 or 2. The binaries distributed with the original Windows XP and Service Pack 1 are identical.
Starting with Windows Vista, there is also a copy of SERVICES.EXE among the assemblies. The assembly identity is Microsoft-Windows-Services-ServiceController.
An assembly is represented by an executable and a manifest. Both are in the tree beneath the WinSxs subdirectory of the Windows directory. The executables are all named the same, but different versions can be in different subdirectories. The executable in the subdirectory named assembly has the manifest named assembly.manifest in the Manifests subdirectory.
File Version | Assembly Directory |
---|---|
6.0.6000.16386 | x86_microsoft-windows-s..s-servicecontroller_31bf3856ad364e35_6.0.6000.16386_none_cd28fe6bd05df036 |
In practice, the SERVICES.EXE that gets executed is the one in the Windows system directory.