ti-enxame.com

Descubra a versão do Windows a partir da linha de comando do usuário não privilegiado

Eu preciso de uma maneira de descobrir qual versão do Windows estou executando usando ferramentas simples de linha de comando (sem powershell). Eu preciso que ele funcione de um usuário não privilegiado, e eu preciso ser capaz de analisar a diferença entre o Windows XP, Vista, servidor 2008 e 7. Atualmente, estou usando: wmic os get Caption mas que falha quando o usuário não tem permissões para executar o wmic.

Update: Para esclarecer, eu preciso deste comando para não romper com diferentes níveis de service pack, etc., que provavelmente exclui a análise de um número de versão específico. Além disso, se você olhar para esta lista de versões do Windows, você verá que os números relatados no Windows 7 e no servidor 2008 r2 são os mesmos.

14
Jared

Eu resolvi esse problema analisando a saída de:

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

o comando systeminfo mostra tudo sobre a versão do sistema operacional, incluindo o número do service pack e a edição que você está usando.

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    

Referência: Encontre a versão do Windows a partir do comando Prompt

11
Sriniv

Você pode usar ver. Eu estou em um computador da escola com um comando não privilegiado Prompt, e isso me dá Microsft Windows [Version 6.1.7601]. Tenho certeza de que você seria capaz de resolver o Vista e XP do número que você recebe.

4
Caleb Jares

cmd exibe a versão do Windows quando iniciado:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Joey>_

Esta também é uma linha semelhante à que ver cospe, de fato.

Uma opção então pode ser

echo exit|cmd|findstr Windows

outro

cmd /c ver

dependendo se você tem um pipeline ou não.

4
Joey
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
)
2
Nior aon Duine

Você pode obter o SysInternals e instalar em seu diretório C: \. Depois disso, você pode ir para um prompt de comando e usar o comando PSINFO.

É ótimo porque me permite consultar qualquer PC na rede (que eu tenho acesso). No prompt de comando, digite: PSINFO\exactnameofcomputer

(PSINFO whack whack exactnameofcomputer)

Então aperte enter. Levará um ou dois minutos para relatar, dependendo de onde esse computador está localizado.

0
user5419367