从非特权用户命令行中找出Windows版本

我需要一种方法来找出我使用简单的命令行工具(没有PowerShell)运行的Windows版本。 我需要它从一个非特权用户工作,我需要能够parsing出Windows XP,Vista,服务器2008年和7之间的区别。我目前使用: wmic os get Caption但失败时用户没有权限运行wmic。

更新:为了澄清,我需要这个命令不打破不同的服务包级别等,这可能会排除parsing一个特定的版本号。 另外,如果您查看Windows版本的这个列表 ,您将看到在Windows 7和服务器2008 r2上报告的数字是相同的。

Solutions Collecting From Web of "从非特权用户命令行中找出Windows版本"

我解析了这个问题,解析输出:

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

systeminfo命令显示os版本的所有信息,包括服务包号码和正在使用的版本。

 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 

参考: 从命令提示符查找Windows版本

你可以使用ver 。 我在学校的计算机上使用非特权命令提示符,它给了我Microsft Windows [Version 6.1.7601] 。 我相信你可以从你得到的数字中找出Vista和XP。

cmd在启动时显示Windows版本:

 Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\Joey>_ 

事实上,这也是一个类似的方法。

一个选项可能是

 echo exit|cmd|findstr Windows 

另一个

 cmd /c ver 

取决于你是否有管道。

 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 ) 

你可以得到SysInternals并安装到你的C:\目录下。 之后,您可以转到命令提示符并使用命令PSINFO。

这很好,因为它让我查询网络上的任何一台PC(我可以访问)。 在命令提示符处键入:PSINFO \ exactnameofcomputer

(PSINFO重击重击计算机)

然后按回车。 根据计算机的位置,需要一两分钟的时间才能报告。