当 Vista 的服务包版本为级别 1 (SP1) 时,此版本号显示在“控制面板/系统”。但是,在我的系统上,这些信息已经消失,可能是因为我现在正在使用 SP2。我想验证一下,这样我就可以确定了。
结论: 谢谢伊沃我找到了存储服务包版本号的注册表设置。由于我(错误地)确信我已经安装了服务包,并且由于我的系统上的“CSDBuildNumber”为 2,因此我对注册表中的信息进行了一些研究。结果如下:
不含 SP 的全新 Windows Vista 映像:
- CSDBuildNumber:2
- CSDVersion 不存在
带有 SP1 的全新 Windows Vista 映像:
- CSDBuildNumber:1616
- CSD版本:Service Pack 1
带有 SP2 的全新 Windows Vista 映像:
- CSDBuildNumber:1621
- CSD版本:Service Pack 2
所以,事实上,我的问题是——与我所认为的相反——我没有安装服务包。因此,“控制面板/系统”对话框值得信赖。
答案1
看一下这个注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CSDBuildNumber
查看这篇文章它的用途(感谢评论)
答案2
winver
从开始菜单输入框运行(或任何可以运行任意命令的地方)。
这个小实用程序会打开一个消息框,列出当前的 Windows 版本和服务包级别。
答案3
我的答案(正确的答案),供后人参考:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows\CSDVersion (a REG_DWORD)
服务包级别(如果有)值是通过将CSDVersion >> 8
CSDVersion REG_DWORD 右移 8 位获得的;例如 REG_DWORD价值将0x100
适用于 SP1、0x200
将适用于 SP2,等等。
这适用于 Windows NT4 及以上版本,并且是微软获取 SP 级别的首选方式在引入操作系统版本信息结构,如Windows 基本要求[1],具体要求“7.正确执行Windows版本检查“(更多详情请参阅下面的参考链接)
[1]参考文献:http://msdn.microsoft.com/en-us/library/ms954375.aspx