4

When Vista's service pack version is at level 1 (SP1), this version number is shown at "Control Panel / System". However, on my system this information has disappeared, probably because I'm now using SP2. I'd like to verify this, so I can be certain.

Conclusion: Thanks to Ivo I found the registry settings that store the service pack version number. Because I was (incorrectly) convinced that I had installed a service pack already, and because the "CSDBuildNumber" was 2 on my system, I did some research about the info in the registry. Here are the results:

Fresh Windows Vista image without SP:

  • CSDBuildNumber: 2
  • CSDVersion is not present

Fresh Windows Vista image with SP1:

  • CSDBuildNumber: 1616
  • CSDVersion: Service Pack 1

Fresh Windows Vista image with SP2:

  • CSDBuildNumber: 1621
  • CSDVersion: Service Pack 2

So indeed, my problem was that - contrary to what I believed - I had no service pack installed. Thus, the "Control Panel / System" dialog can be trusted.

3 Answers 3

1

Have a look at this registry entry:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CSDBuildNumber

Check this article on what it's for (thanks for the comments)

4
  • Jep! The service pack version can be found at: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CSDBuildNumber". Please update you're answer, and I'll "accept" it.
    – Dimitri C.
    Jan 27, 2010 at 10:22
  • For completeness sake, I found the CSDBuildNumber-means-service-pack-level confirmation at: blogs.dirteam.com/blogs/sanderberkouwer/archive/2007/11/02/…
    – Dimitri C.
    Jan 27, 2010 at 10:25
  • Thanks a lot for your help. In the end, my conclusion is that I don't have a service pack installed.
    – Dimitri C.
    Jan 27, 2010 at 11:57
  • After completing my own tests, the "CSDBuildNumber = 2" seems to mean that no service packs are installed. Instead, the "CSDVersion" field contains the SP version (as a string), but this field doesn't exist if no service packs are installed.
    – Dimitri C.
    Jan 27, 2010 at 11:59
3

Run winver from the start menu type-in box (or anywhere else you can run arbitrary commands from).

This little util opens up a message box that lists the current Windows version and service pack level.

5
  • Hmmm that seems to work, though on Windows 7 off course there's no line mentioning a lack of a "service pack"...
    – Ivo Flipse
    Jan 27, 2010 at 10:15
  • On my system, the popup dialog merely says: "version 6.0 (Build 6000)". No service pack version is mentioned :s
    – Dimitri C.
    Jan 27, 2010 at 10:18
  • @lvo: Correct. If there is no service pack installed, no service pack is listed in the version info (rather than it explicitly stating "no service pack"). Jan 27, 2010 at 10:18
  • 3
    @Dimitry: Then no service pack is installed (or something is wrong and the utility can't see the fact that a service pack has in fact been installed). The machine I'm currently on reports Version 6.0 (Build 6002: Service Pack 2), and carries the Vista logo in the top image of the box. Jan 27, 2010 at 10:23
  • Thanks for your remark that I don't have a service pack installed. It appeared to be correct :-)
    – Dimitri C.
    Jan 27, 2010 at 12:00
2

My answer (the right answer), for posterity:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows\CSDVersion (a REG_DWORD)

The Service Pack level (if any) value is obtained by doing CSDVersion >> 8 i.e. right-shifting the CSDVersion REG_DWORD by 8 bits; e.g. the REG_DWORD value will be 0x100 for SP1, 0x200 for SP2, and so on.

This works for Windows versions all the way back to NT4, and is Microsoft's preferred way of obtaining SP level before the introduction of the OSVERSIONINFOEX structure, as outlined in the Windows Fundamental Requirements [1], specifically requirement "7. Perform Windows Version-Checking Correctly" (see reference link below for more details)

[1] Reference: http://msdn.microsoft.com/en-us/library/ms954375.aspx

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .