Display the current operating system version.


A very simple method of version checking is to pipe a version string into FIND, however there is a possibility that something which is a unique string today might match a minor version released in the future e.g. the following would also match 7.6.1

ver | find "6.1" > nul
if %ERRORLEVEL% == 0 goto ver_2008R2

Batch file to find the current operating system version:

@Echo off
For /f "tokens=4,5,6 delims=[]. " %%G in ('ver') Do (set _major=%%G& set _minor=%%H& set _build=%%I) 

Echo Major Version: [%_major%]
Echo Minor Version: [%_minor%]
Echo Build: [%_build%]

Version / Release ID

The VER command returns the Major/Minor / Build number, but does not include the Version/Release ID as displayed in Settings > About.

The Release ID is typically a 4 digit code - a 2 digit year plus 2 digit month = the planned release date, so 1709 means September 2017.
In practice the final release date is often a month or so later.

Mobile, Desktop and Server releases will have the same Version/Release ID but different build numbers.
This Release ID can be retrieved from the registry with PowerShell :

(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseId

List of Windows Version numbers

Windows Version Numbers
Product name Major version / build Version / Release ID
Windows 1.0 1.04  
Windows 2.0 2.11  
Windows 3.0 3  
Windows 95 4.0.950  
Windows XP 5.1.2600  
Windows XP Professional x64 Edition 5.2.3790  
Windows Vista, RTM (Release to Manufacturing) 6.0.6000.16386  
Windows Vista 6.0.6000  
Windows Vista, Service Pack 2 6.0.6002  
Windows 7, RTM (Release to Manufacturing) 6.1.7600.16385  
Windows 7 6.1.7600  
Windows 7, Service Pack 1 6.1.7601  
Windows 8, RTM (Release to Manufacturing) 6.2.9200.16384  
Windows 8 6.2.9200  
Windows 8.1 6.3.9600.16384.130821-1623  
Windows 10 Gold 10.0.10240 1507
Windows 10 November Update, 2015-11-03 10.0.10586 1511
Windows 10 Aniversary Update 2016-08-02 10.0.14393.1794 1607
Windows 10 Creators Update 2017-04-11 10.0.15063.674 1703
Windows 10 Fall Creators Update 2017-10-17 10.0.16299.19 1709

Server versions
Product name Major version / build Version / Release ID
Windows Server 2003 5.2.3790  
Windows Server 2003, Service Pack 1 5.2.3790.1180  
Windows Server 2003 5.2.3790.1218  
Windows Server 2008 6.0.6001  
Windows Server 2008 Sp2 6.0.6002  
Windows Server 2008 R2, RTM (Release to Manufacturing) 6.1.7600.16385  
Windows Server 2012 6.2.9200  
Windows Server 2012 R2 6.3.9600  
Windows Server 2016 RTM 2016-09-26 10.0.14393  
Windows Server 2016 Aniversary Update 2017-03-22 10.0.14393.970 1607
Windows Server 2016 Fall Creators Update 10.0. any day now 1709

See also Wikipedia list of Windows versions and Microsoft Windows 10 release history

Finding the version remotely

PowerShell can be used to find the OS versions of multiple machines across a domain:

Get-ADComputer -Filter {OperatingSystem -like "Windows 10*"} -Property * | Format-Table Name,OperatingSystem,OperatingSystemVersion -Wrap –Auto

Service Pack Level

This batch script or this PowerShell script will return the Service Pack level.

32 bit or 64 bit process detection

The environment variable PROCESSOR_ARCHITECTURE holds the following possible values:

64-bit process: AMD64 or IA64
32-bit process or WOW64 (32bit Program on 64 bit OS): x86

If we are running WOW64 then PROCESSOR_ARCHITEW6432 =AMD64

  // OS is 32bit
  // OS is 64bit

via David Wang @MSFT


If the version was successfully displayed %ERRORLEVEL% = 0
If a bad parameter is given %ERRORLEVEL% = 1
VER /? will not reset the ERRORLEVEL, this is a bug.

VER is an internal command.

“Always be a first-rate version of yourself, instead of a second-rate version of somebody else” ~ Judy Garland


Win32_OperatingSystem OperatingSystemSKU - Retrieve the OS Type via WMI (sku=Stock Keeping Unit ).
Sigcheck - Check a file version, both OS files and others.
SystemInfo - Return OS, Service pack, BIOS, Memory etc
WINVER.exe - Opens the GUI Version dialogue box (Help, About)
FILEVER - DLL version information (Resource Kit)
OS version changes in Windows 8.1 and Windows Server 2012 R2
Wikipedia - Timeline of Microsoft Windows
Powershell equivalent: Get-Host
Equivalent bash command (Linux): uname -r - Print system information

Copyright © 1999-2018
Some rights reserved