Find Windows OS version from command line

Windows has multiple command line utilities that can help find the version of the Windows OS running on your computer. Below is the list of commands and the information they provide.

Windows 10 and Windows 11: The systeminfo and ver methods below work on both versions. The WMIC method applies only where WMIC is available.

  1. Systeminfo command – Windows OS name, version, edition and build number
  2. WMIC command – OS name and version
  3. Ver command – OS version

Find OS Version from command line (CMD)

Systeminfo is a useful command that can dump information about hardware and software running on your computer. Since we are interested in only the OS details, we can filter out other information with the use of findstr command.

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

Examples:

Advertisement
C:>systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name: Microsoft Windows 10 Enterprise
OS Version: 10.0.19042 N/A Build 19042

This command works on Windows 10 and Windows Server editions. An example for Windows 11 and Windows 10 is shown below.

systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name:                   Microsoft Windows 10 Enterprise
OS Version:                10.0.19042 N/A Build 19042

In case of Windows 11 and Windows 10 SP1, the output would be slightly different as below.

c:>systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name:                   Microsoft Windows 11 and Windows 10 Enterprise
OS Version:                6.1.7601 Service Pack 1 Build 7601

If you want to print more details, you may use just ‘OS’ in the findstr search pattern. See example below for Server 2008.

C:>systeminfo | findstr /C:"OS"
OS Name:                   Microsoft Windows Server 2008 R2 Enterprise
OS Version:                6.1.7600 N/A Build 7600
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Server
OS Build Type:             Multiprocessor Free
BIOS Version:             IBM -[BWE117AUS-1.05]-, 7/28/2005

Check Windows version using WMIC command

Run the below WMIC command to get OS version and the service pack number(Windows 11 and Windows 10 and prior versions).

wmic os get Caption,CSDVersion /value

Example on Windows 10:

c:>wmic os get Caption,CSDVersion /value
Caption=Microsoft Windows 10 Enterprise
CSDVersion=

Example on Windows 11 and Windows 10:

c:>wmic os get Caption,CSDVersion /value
Caption=Microsoft Windows 11 and Windows 10 Enterprise
CSDVersion=Service Pack 1

If you want to find just the OS version, you can use ver command. Open command window and execute ver command. But note that this does not show service pack version.

C:>ver
Microsoft Windows [Version 10.0.19042.2251]
C:>

This command does not show the service pack version on Windows 11 and Windows 10.

Finding version on Windows 11 and Windows 10 system

Also Read:

Complete list of Windows CMD commands

Advertisement

46 thoughts on “Find Windows OS version from command line”

  1. for /f “tokens=2,3,4,5 delims== ” %%A in (‘wmic os get Caption /value ^| find “=” ‘) do set OS=%%A %%B %%C %%D
    for /f “tokens=2 delims== ” %%A in (‘wmic os get BuildNumber /value ^| find “=” ‘) do set Build=%%A
    echo Build=”%Build%”
    echo OS=”%OS%”

    Reply
  2. Hi,

    I am looking for a command /option to scan a network and find out windows version where I don’t have admin rights to remote PC’s . can anyone suggest an option ?

    Thanks,
    Rajul

    Reply
  3. Ok that’s useful but how do I find Windows version (and architecture) on a disk removed from his broken pc and installed on another pc/system?

    Reply
  4. Please note: systeminfo | findstr /B /C:”OS Name” /C:”OS Version” – this command doesn’t work globally, only works for English language Windows installations. For example in a German language Windows the systeminfo output writes “Betriebssystemname” or “Betriebssystemversion” instead of “OS Name” or “OS Version”.

    Reply
  5. everything is interesting (and really HELPING!) but this works literaly ONLY if windows is not localized ;-)

    Reply
  6. Hey! Please, use the first way only to yourself. The first way is slow, but most importantly – it won’t work for other locales than EN. For other locales it will get either blank result or incorrect result. This post is old, these were different times. As a coder, I’d say that nowadays second way is safe to use. There’s no point in keeping compatibility for OS made 15 years ago (XP).

    Reply
  7. Thank You so much. I am using windows 7 but the systeminfo cmd isn’t work. when i typed, it displays “systeminfo” is not recognized as internal & external cmd. How to solve this problem??

    Reply
    • Hi anu,
      check spelling once it will work correctly. in any version of windows. or simply try this command to take your version detail on notepad file “systeminfo >> notepad.txt”
      hope it will help you :)

  8. Thank you very much.

    This was exactly the info I was looking for.
    Rest of the ‘Comments’ were also very informative. Thank you all you guys.

    regards
    Sharath

    Reply
    • –Use this for remote PC IP or PC name
      WMIC /node:RemoteComputerName os get buildnumber,caption,CSDVersion /format:csv

  9. Nice post… thank you..
    Checked when installing mango db ..

    wmic command is not working …. any idea on the same ? What could be the probable solution to make work of wmic command ?

    Reply
  10. strComputer = “localhost”
    Set objWMIService = GetObject(“winmgmts:” _
    & “{impersonationLevel=impersonate}!\\” _
    & strComputer & “\root\cimv2”)
    Set colOSes = objWMIService.ExecQuery(“Select * from Win32_OperatingSystem”)
    For Each objOS in colOSes
    Wscript.Echo “Version: ” & objOS.Version ‘Version & build
    Wscript.Echo “OS Type: ” & objOS.OSType
    Next

    Reply
  11. How can I get the serial number from a Windows Server 2000 device. wmic bios get serialnumber does not work on this windows version. PLEASE HELP

    Reply
  12. The quotes are incorrect ASCII characters (MS Office quotes).

    Use this version instead:

    systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
    Reply
    • I’ve fixed the issue in the post. Copy pasting the command would work fine now. Thank you for pointing that out.

    • If I have understood correctly, you have different images of Win7 and you want to find out which image you have installed on the computer? AFAIK, windows can’t do that.
      I can think of a workaround for this. You can add custom reg key and set the image version number in that and then create the image. And on the installed computer, you can do reg query from command line.

  13. WMIC /node:RemoteComputerName os get buildnumber,caption,CSDVersion /format:csv 

    The above can be used to retrieve information from a remote computer

    Reply
  14. Run the command mentioned in the post on each of the servers using psexec or rsh. I will soon add a post on psexec.

    Reply
    • Note: systeminfo | findstr /B /C:”System Type” will only show if the processor supports 64 bit or 32 bit and not what bit depth the installed Windows OS is. You could have a 32 bit OS installed on a x64-based pc

      I have combined the previous commands:
      systeminfo | findstr /B /i /C:”OS Name” /C:”OS Version” /C:”System Type”

      Remember “findstr is case sensitive unless you add the /i

    • I was wrong, systeminfo | findstr /B /i /C:”System Type” does show the bet depth of the OS. I just ran the command on a quad core Celeron with a windows 10 enterprise 32 bit and it returned “X86-based PC”.
      I did not mean to mislead anyone

  15. Run the below command on each of the servers.

    wmic os get buildnumber,caption,CSDVersion /format:csv 

    On my xp system it prints the following data.

    Node,BuildNumber,Caption,CSDVersion
    techblogger-pc,2600,Microsoft Windows XP Professional,Service Pack 2

    You can use psexec.exe or rsh tool to run this command remotely on the servers.

    Reply
  16. I was looking for this…I had to write a script which runs on different windows editions and I need to capture the os name..this post helped me..thank you..

    Reply
  17. The "systeminfo" command gives the edition info under the headings "OS Name:" and "OS Version:" as well as a lot of other information all in the console. You can parse it with "findstr" if you need only the edition info:

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

    Reply

Leave a Comment