Como encontro a versão do Windows que estou usando?
Estou usando o PowerShell 2.0 e tentei:
PS C:\> ver
The term 'ver' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify tha
t the path is correct and try again.
At line:1 char:4
+ ver <<<<
+ CategoryInfo : ObjectNotFound: (ver:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Como eu faço isso?
windows
powershell
powershell-2.0
jrara
fonte
fonte
Respostas:
Como você tem acesso à biblioteca .NET, você pode acessar a
OSVersion
propriedade daSystem.Environment
classe para obter essas informações. Para o número da versão, existe aVersion
propriedadePor exemplo,
Detalhes das versões do Windows podem ser encontradas aqui .
fonte
[Environment]::OSVersion
funciona no windows-10 ,OSVersion.Version.Major
retorna 10.winver
ele me mostra a versão 1607. Mas o comando powershell acima não fornece 1607. Onde obtenho esse número "1607" no Powershell?(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseId
[System.Environment]::OSVersion
não foi preterido, o método que ele usa em segundo plano foi preterido. Novas versões do PS estão alterando o comportamento do back-end: github.com/PowerShell/PowerShell/issues/…Para obter o número da versão do Windows, como Jeff observa em sua resposta , use:
Vale ressaltar que o resultado é do tipo
[System.Version]
; portanto, é possível verificar, por exemplo, o Windows 7 / Windows Server 2008 R2 e posterior comNo entanto, isso não informará se é o Windows cliente ou servidor, nem o nome da versão.
Use a
Win32_OperatingSystem
classe do WMI (sempre única instância), por exemplo:retornará algo como
fonte
Infelizmente, a maioria das outras respostas não fornece informações específicas para o Windows 10.
Windows 10 tem versões de seu próprio: 1507, 1511, 1607, 1703, etc . Isto é o que
winver
mostra.Consulte também a pergunta relacionada sobre superusuário .
Quanto a outras versões do Windows, use
systeminfo
. Empacotador Powershell:Saída do Windows 10 para o mesmo comando:
fonte
winver
na área de trabalho esysteminfo
no servidor. Durante anos, fiquei desconcertado por não haver uma maneira uniforme de obter essas informações.OS Version : 6.3.9600 N/A Build 9600
. Portanto, nas versões abaixo do W81, pode ser mais informativo olhar para as versões (sempre esquecidas) do LTSB. Veja saída:(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").BuildLabEx
o que pode ser parecido com:9600.19179.amd64fre.winblue_ltsb_escrow.181015-1847
. Meu palpite é que a181015
peça é a data de compilação, enquanto a1847
versão é de compilação ou lançamento. Você também pode precisar comparar isso com o kernel, hal .Ou jogou golfe
Resultado
fonte
Isso fornecerá a versão completa do Windows (incluindo o número de revisão / compilação), diferente de todas as soluções acima:
Resultado:
fonte
10.0.10586.0 (th2_release.151029-1700)
exibido, enquanto o winload.exe possui10.0.10586.63 (th2_release.160104-1513)
.version
. O sistema operacional é construído (e atualizado) por partes, ou seja, o Kernel, o HAL, o UBR e os recursos etc. Então, nós realmente devemos exibir todos eles. A esse respeito, eu achoBuildLabEx
,Kernel
eHAL
(nessa ordem) seria a maneira mais apropriada de fornecer uma versão mais apropriada . Mas como você parece saber o que está errado , deve postar o que está certo .retorna
fonte
Desde o PowerShell 5:
Eu acho que esse comando tenta as 1001 maneiras até agora descobertas para coletar informações do sistema ...
fonte
Se você deseja diferenciar o Windows 8.1 (6.3.9600) e o Windows 8 (6.2.9200), use
para obter a versão correta.
[Environment]::OSVersion
não funciona corretamente no Windows 8.1 (retorna uma versão do Windows 8).fonte
[Environment]::OSVersion
funciona no windows-10 ,OSVersion.Version.Major
retorna 10.(Get-CimInstance Win32_OperatingSystem).Version
e[Environment]::OSVersion
funciona para mim e retornar o mesmo resultado: 6.3.9600.0Estou refinando uma das respostas
Eu cheguei a esta pergunta ao tentar corresponder à saída do winver.exe:
Version 1607 (OS Build 14393.351)
Consegui extrair a string de construção com:
Resultado:
14393.351
Atualizado : aqui está um script ligeiramente simplificado usando regex
fonte
Peguei os scripts acima e os aprimorei um pouco para fazer isso:
Para obter um resultado como este:
Microsoft Windows 10 Home Versão de 64 bits: 1709 Compilação: 16299.431 @ {WindowsInstallDateFromRegistry = 18-01-01 2:29:11 AM}
Dica: eu apreciaria uma mão removendo o texto do prefixo da data de instalação para que eu possa substituí-lo por um cabeçalho mais legível.
fonte
[timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970')).AddSeconds($(get-itemproperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion").InstallDate)
é um pouco mais complexo, mas é muito mais rápido. Você pode até deixar de fora a parte do fuso horário:([datetime]'1/1/1970').AddSeconds($(get-itemproperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion").InstallDate)
Como o MoonStom diz,
[Environment]::OSVersion
não funciona corretamente em um Windows 8.1 atualizado (retorna uma versão do Windows 8): link .Se você quiser diferenciar entre o Windows 8.1 (6.3.9600) e o Windows 8 (6.2.9200), poderá usar
(Get-CimInstance Win32_OperatingSystem).Version
para obter a versão correta. No entanto, isso não funciona no PowerShell 2. Portanto, use o seguinte:fonte
Usar:
fonte
Se você estiver tentando decifrar as informações que a Microsoft coloca no site de correções, como https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
você precisará de um combo como:
$name=(Get-WmiObject Win32_OperatingSystem).caption $bit=(Get-WmiObject Win32_OperatingSystem).OSArchitecture $ver=(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId Write-Host $name, $bit, $ver
Microsoft Windows 10 Home de 64 bits 1703
fonte
Windows PowerShell 2.0:
Windows PowerShell 3.0:
Para exibição (ambas as versões):
fonte
Para produzir uma saída idêntica ao winver.exe no PowerShell v5 no Windows 10 1809:
fonte
fonte
Este é realmente um tópico longo, e provavelmente porque as respostas, embora corretas, não estão resolvendo a questão fundamental. Encontrei este site: Versão e números de compilação, que forneciam uma visão clara do que é o que no mundo do Microsoft Windows.
Como meu interesse é saber com qual sistema operacional exato do Windows estou lidando, deixei de lado a versão arco-íris inteira e, em vez disso, foquei no BuildNumber. O número da compilação pode ser alcançado por:
ou pela:
a escolha é sua, da maneira que você preferir. Então, a partir daí, eu poderia fazer algo como:
Nota: Como você pode ver, usei o descrito acima apenas para sistemas de servidor, no entanto, ele pode ser facilmente aplicado a estações de trabalho ou mesmo estendido de maneira inteligente para suportar os dois ... mas deixarei isso para você.
Aproveite e divirta-se!
fonte
Isso fornecerá a versão completa e CORRETA (o mesmo número de versão encontrado ao executar o winver.exe) do Windows (incluindo o número de revisão / compilação) REMOTAMENTE ao contrário de todas as outras soluções (testadas no Windows 10):
fonte
Pesquisei muito para descobrir a versão exata, porque o servidor WSUS mostra a versão errada. O melhor é obter a revisão da chave de registro UBR.
fonte
Usando o Windows Powershell, é possível obter os dados necessários da seguinte maneira
Rubrica:
ReleaseId:
versão:
fonte
[resolvido]
fonte
Você também pode usar algo assim, verificando OSVersion.Version.Major:
fonte
Você pode usar python para simplificar as coisas (funciona em todas as versões do Windows e em todas as outras plataformas):
fonte
No Windows 10, retorna: 10.0.10586.420
Você pode usar a variável para acessar propriedades para comparação granular
Além disso, você pode comparar as versões do sistema operacional usando o seguinte
fonte