Windows命令行:我可以告诉Service Pack编号吗?


12

有没有办法从命令行获取Service Pack编号?或者是命令行中的内部版本号(我可以从中知道Service Pack编号(请参阅如何从WindowsUpdateLog.txt确定Windows版本和Service Pack))?

启动时cmd,屏幕上会显示Windows版本号的一部分,而不显示服务包号。

我更喜欢非PowerShell的答案,但是我无论如何都不会知道PowerShell的答案,因为我处理过的某些计算机确实已经安装了它。


Answers:


15
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" 

来源:在命令提示符下查找Windows版本


这是我尝试过这些方法的所有计算机上都能使用的唯一方法。
亚历山大·伯德

ps-以上内容仅在用户语言为英语的情况下有效,因为字符串过滤器使用英语名称。单独使用systeminfo可以适用于任何语言-尽管需要人工搜索所有返回的数据。
JohnLBevan

9

您可以使用WMIC来获得它-wmic os get servicepackmajorversion

有关使用WMIC的更多信息,请参见此小教程:http : //quux.wiki.zoho.com/WMIC-Snippets.html


是否在所有Windows计算机上都安装了wmic?由于某种原因,我的家用计算机无法识别wmic
亚历山大·伯德

1
很棒的工具,谢谢分享!@ Thr4wn,根据Wikipedia所述,WMIC在Windows XP Home Edition上不可用,但在XP Pro和所有更高版本的Windows上可用。
nhinkle

6

您可以输入CMD:

温佛


好答案!....当我获得更多选票时+1
studiohack

2
嗯...问题是,它打开了一个GUI工具,这可能不是用户正在尝试执行的操作。
nhinkle

2
在命令提示符下运行的SYSTEMINFO将显示而没有GUI。
r0ca 2010年

1
在其中,cmd.exe您可以使用just ver并在stdout上获取版本。但是您需要转换内部版本号才能获得SP。
理查德

ver没有提供完整的版本号。它在服务包编号之前停止。
亚历山大·伯德

1

您可以通过在注册表中查询ServicePack项从命令行获取它。如果安装了SP,则会显示它,否则,它将说它无法找到指定的密钥,在这种情况下,没有Service Pack。

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v ServicePack

这仅在安装了Service Pack的情况下才有效(例如,当前Windows 7没有Service Pack,因此密钥不存在)
misterjaytee 2010年

我知道; 这就是我在回答中所说的。如果密钥不存在,则没有Service Pack,因此为SP0。如果该密钥确实存在,它将告诉您Service Pack。因此,无论哪种方式,您都可以确定安装了哪个Service Pack(如果有)。
nhinkle

当我尝试Giri的解决方案时,它显示SP 3,但是此方法报告它找不到指定的注册表项或值(我将命令复制/粘贴到cmd中)。
亚历山大·伯德

代替“ ServicePack”,您可以使用“ ProductName”和“ CSDVersion”
d.moncada
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.