linha de comando do windows: posso informar o número do service pack?

12

Existe uma maneira de obter o número do service pack na linha de comando? Ou o número da compilação na linha de comando (na qual posso informar o número do service pack (consulte Como determinar a versão do Windows e o Service Pack no WindowsUpdateLog.txt ))?

Ao iniciar cmd, parte do número da versão do Windows é mostrada na tela, mas não o número do service pack.

Prefiro uma resposta que não seja do PowerShell, mas não me importaria em saber sobre uma resposta do PowerShell de qualquer maneira, já que alguns computadores com os quais eu ligo o têm instalado.

Alexander Bird
fonte

Respostas:

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

Fonte: Encontre a versão do Windows no prompt de comando

Giri
fonte
Este é o único que funciona em todos os computadores nos quais experimentei esses métodos.
Alexander Bird
ps - o item acima só funciona se o idioma do usuário for o inglês, pois o filtro de string usa os nomes em inglês. Usar o systeminfo por conta própria funcionará em qualquer idioma - embora exija esforço manual para pesquisar todos os dados retornados.
31412 JohnLBevan
9

Você pode obtê-lo usando o WMIC - wmic os get servicepackmajorversion

Para saber mais sobre o uso do WMIC, consulte este pequeno tutorial: http://quux.wiki.zoho.com/WMIC-Snippets.html

Multiverse IT
fonte
O wmic está instalado em todos os computadores Windows? por alguma razão, meu computador doméstico não reconhece wmic.
Alexander Bird
1
Ferramenta incrível, obrigado por compartilhar! @ Thr4wn, de acordo com a Wikipedia, o WMIC não está disponível no Windows XP Home Edition, mas no XP Pro e em todas as versões posteriores do Windows.
Nhinkle 1/10/10
6

Você pode digitar CMD:

Winver

r0ca
fonte
boa resposta! .... +1 quando eu receber mais votos
studiohack
2
Hum ... problema com isso é, ele abre uma ferramenta GUI, que pode não ser o que o usuário está tentando fazer.
Nhinkle
2
A execução do SYSTEMINFO em um prompt de comando será exibida sem a GUI.
R0ca
1
No cmd.exevocê pode usar just vere obter a versão no stdout. Mas você precisa converter o número da compilação para obter o SP.
Richard
vernão fornece o número da versão completa. Para imediatamente antes do número do service pack.
Alexander Bird
1

Você pode obtê-lo na linha de comando consultando o Registro para obter a chave ServicePack. Se um SP estiver instalado, ele será mostrado; caso contrário, ele indicará que não foi possível localizar a chave especificada; nesse caso, não há service pack.

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v ServicePack
nhinkle
fonte
Isso só funciona se houver um Service Pack instalado (por exemplo, atualmente o Windows 7 não tem um Service Pack assim que a chave não existe)
misterjaytee
Eu sei; foi o que afirmei na minha resposta. Se a chave não existir, não haverá service pack, portanto é o SP0. Se a chave existir, ele informará o service pack. De qualquer maneira, você pode descobrir qual service pack (se houver) está instalado.
Nhinkle 1/10/10
Quando tento a solução da Giri, ela mostra o SP 3, mas esse método relata que não foi possível encontrar a chave ou o valor do registro especificado (copiei / colei o comando no cmd).
Alexander Bird
Em vez de "ServicePack", você pode usar "ProductName" e "CSDVersion"
d.moncada