Microsoft has recently decided to supply every Windows Server 2008 test version with the same major revision number. This number, also known as the Build number, is used often to distinguish test versions. When submitting a bug or asking a question in the TechNet forums you might even get asked for it. (or at least get asked for the ‘name’ of the version)
Major, minor and revisions
Windows versions can be identified using their Major version, their Minor version and their revision. Under the hood all Microsoft Windows versions have this unique combination of numbers. Looking at the Windows NT family of products you can clearly see these combinations when you invoke winver.exe and examine the second line of output:
Windows NT 4 Server | 4.0 (Build 1381) |
Windows 2000 Server | 5.0 (Build 2195) |
Windows Server 2003 | 5.2 (Build 3790) |
Clearly Windows NT 4 Server is major version 4 with minor version 0. Both Windows 2000 Server and Windows Server 2003 are major version 5 of Windows NT. They have different minor versions. Windows Vista and Windows Server 2008 are both version 6.0 of Windows NT. (They share the same codebase.)
Build 6001
A new revision, or Build, emerges when a new version of Windows is generated from the source code. The build number is an incremental attribute value to identify superseding builds.
Microsoft has decided to use 6001 as the Build number for all Windows Server 2008 test versions and Windows Vista Service Pack 1 test versions. To differentiate between the test versions Microsoft has decided to use an additional revision number. This additional revision number started at 16384 at the release of the August Community Technology Preview (CTP) when Windows Server 2008 was still known as Windows Server Codename "Longhorn".
Determining the version
There are two methods to determine your version of Windows Server 2008:
- Through the extended BuildLab value
- Through the CSDVersion Number
The BuildLabEx method
The method of using the BuildLab value is a fairly common method to determine Windows versions and patch levels. The BuildLabEx value is an extensive version of the BuildLab value and holds more information.
Through the registry
The BuildLabEx value is stored in the registry. This allows the method to be used on both the fully installed version of the Operating System and Server Core installations. Using your favorite registry tool you can easily read the version of your Operating System here:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\BuildLabEx
Values for this registry key start with 6001, followed by the second revision number, followed by some processor information, some more build and version information and the time and date on which the build was made. Below is a table with values for the second revision number corresponding with publicly available versions of Windows Server 2008 / Windows Server Codename "Longhorn":
6001.16406 | Windows Server Codename “Longhorn” December 2006 CTP |
6001.16461 | Windows Server Codename “Longhorn” February 2007 CTP |
6001.16497 | Windows Server Codename “Longhorn” April 2007 CTP |
6001.16510 | Windows Server Codename “Longhorn” Beta 3 |
6001.16606 | Windows Server 2008 June 2007 CTP |
6001.16659 | Windows Server 2008 Release Candidate 0 |
6001.17042 | Windows Server 2008 November 2007 CTP |
6001.17051 | Windows Server 2008 Release Candidate 1 |
6001.17119 | Windows Server 2008 Release Candidate 1 with Hyper-V Beta |
The CSDVersion method
The CSDVersion represents the Service Pack level of the Operating System. It also contains a value for the CSDBuildNumber at the end.
Note:
While we're mainly interested in the CSDBuildNumber I'm still checking the CSDVersion value, since checking the CSDBuildNumber on earlier versions (more specific: pre-April 2007 CTP versions) of Windows Server Codename "Longhorn" ends up in an error. In these versions there's also no information to be found in the CSDVersion info.
The value for CSDVersion is stored in a registry key not far from the BuildLabEx key, but checking it through the registry would basically make this method resemble the previous method too much. Besides: the CSDVersion can be obtained much easier.
WinVer.exe
If you're using a full installation of Windows Server Codename "Longhorn" or Windows Server 2008 you can just run WinVer.exe (no command line options necessary) On the second line behind the major, minor and revision number you'll find CSDBuildNumber value at the end.
WMIC
It’s also possible to determine the version of your Operating System using the Windows Management Instrumentation Console (WMIC). Since Server Core doesn't offer winver it's the preferred way for Server Core users to determine their version. You can query the value for CSDBuildNumber using the following command:
Wmic OS get CSDVersion
The value is a string with ends with a number, which has a correlation with the second revision number: the CSDBuildNumber. This number seems to resemble the number of builds from the August 2006 CTP, which had 5600.16384 as its revision number. Below is a table with CSDBuildNumbers corresponding with publicly available versions of Windows Server 2008 / Windows Server Codename "Longhorn":
v.22 | Windows Server Codename “Longhorn” December 2006 CTP |
v.77 | Windows Server Codename “Longhorn” February 2007 CTP |
v.113 | Windows Server Codename “Longhorn” April 2007 CTP |
v.126 | Windows Server Codename “Longhorn” Beta 3 |
v.222 | Windows Server 2008 June 2007 CTP |
v.275 | Windows Server 2008 Release Candidate 0 |
v.658 | Windows Server 2008 November 2007 CTP |
v.667 | Windows Server 2008 Release Candidate 1 |
v.735 | Windows Server 2008 Release Candidate 1 with Hyper-V Beta |
Concluding
It's not difficult to determine the version of your Windows Server Codename "Longhorn" or Windows Server 2008 box.
If you're running a full installation you can find it using winver.exe, in the registry and using the Windows Management Instrumentation Console (WMIC). If you're a hardcore admin running Server Core you can find it in the registry or feed your beloved wmic some more commands.
Happy testing!
Further reading
Retrieving the Properties of the Operating System
The Build Process
How do you guys create Build numbers?
Windows Server 2008 on Wikipedia
WSV ('Viridian") part of Windows Server 2008 SP1?
Windows Server 2008 Developer Center
Login