Узнать версию Windows из командной строки непривилегированного пользователя - PullRequest
14 голосов
/ 05 декабря 2011

Мне нужен способ узнать, в какой версии Windows я работаю, используя простые инструменты командной строки (без powershell).Мне нужно, чтобы он работал от непривилегированного пользователя, и мне нужно уметь анализировать разницу между Windows XP, Vista, server 2008 и 7. В настоящее время я использую: wmic os get Caption, но это не удается, когда пользовательне имеет разрешения на запуск wmic.

Обновление: Чтобы уточнить, мне нужна эта команда, чтобы не порвать с различными уровнями пакетов обновления и т. д., что, вероятно, исключает анализ определенного номера версии,Также, если вы посмотрите на этот список версий Windows, вы увидите, что числа, указанные в Windows 7 и server 2008 r2, одинаковы.

Ответы [ 6 ]

18 голосов
/ 06 декабря 2011

Я решил эту проблему, проанализировав вывод:

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v "ProductName"
11 голосов
/ 28 июня 2012

Система 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 из командной строки

4 голосов
/ 05 декабря 2011

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 голосов
/ 05 декабря 2011

Вы можете использовать ver.Я на школьном компьютере с непривилегированной командной строкой, и она дает мне Microsft Windows [Version 6.1.7601].Я уверен, что вы сможете отсортировать Vista и XP по числу, которое вы получите.

2 голосов
/ 16 февраля 2016
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
)
0 голосов
/ 07 октября 2015

Вы можете получить SysInternals и установить в свой каталог C: \. После этого вы можете перейти в командную строку и использовать команду PSINFO.

Это здорово, потому что позволяет мне запрашивать любой ПК в сети (к которому у меня есть доступ). В командной строке введите: PSINFO \ точное имя компьютера

(PSINFO - точное имя компьютера)

Затем нажмите Enter. Чтобы отчитаться, потребуется время или два, в зависимости от того, где находится этот компьютер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...