我需要一种方法,使用简单的命令行工具(没有powershell)找出我正在运行的Windows版本。我需要它来自非特权用户,我需要能够解析Windows XP,Vista,Server 2008和7之间的差异。我目前正在使用:
wmic os get Caption
但是当用户没有运行wmic的权限时失败。
更新 为了澄清,我需要这个命令不要破坏不同的服务包级别等,这可能会排除解析特定的版本号。此外,如果您查看Windows版本的this list,您会看到Windows 7和Server 2008 r2上报告的数字是相同的。
答案 0 :(得分:17)
我通过解析输出:
解决了这个问题reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v "ProductName"
答案 1 :(得分:11)
systeminfo命令显示操作系统版本的所有内容,包括服务包编号和您正在使用的版本。
C:\>systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name: Microsoft Windows 7 Enterprise
OS Version: 6.1.7601 Service Pack 1 Build 7601
答案 2 :(得分:4)
您可以使用ver
。我在学校计算机上使用非特权命令提示符,它给了我Microsft Windows [Version 6.1.7601]
。我相信你能从你获得的数字中挑选出Vista和XP。
答案 3 :(得分:4)
cmd
在启动时显示Windows版本:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Joey>_
这也是一个与ver
吐出的行相似的行。
一个选项可能是
echo exit|cmd|findstr Windows
另一个
cmd /c ver
取决于您是否有管道。
答案 4 :(得分:2)
if not CMDEXTVERSION 2 (
echo Error: This batch requires Command Extensions version 2 or higher
exit /b 1
)
FOR /F "usebackq tokens=4 delims=] " %%I IN (`ver`) DO for /F "tokens=1,2 delims=." %%J IN ("%%I") do set WindowsVersion=%%J.%%K
if "%WindowsVersion%" LSS "6.1" (
echo Error: This batch requires Windows 7 SP1 or higher
exit /b 1
)
答案 5 :(得分:0)
您可以获取SysInternals并安装到C:\目录中。之后,您可以转到命令提示符并使用命令PSINFO。
这很棒,因为它可以让我查询网络上的任何PC(我有权访问)。在命令提示符下键入:PSINFO \ exactnameofcomputer
(PSINFO重击计算机的确切名称)
然后按回车键。报告需要一两个小时,具体取决于计算机所在的位置。