Como posso determinar qual versão do Windows está sendo executada em um servidor usando o PowerShell?

9

Eu estou tentando escrever um script do PowerShell que eu possa executar em servidores remotos. Nestes scripts eu quero realizar diferentes funções, dependendo de qual versão do Windows está sendo executada nas máquinas.

Não consigo encontrar nenhuma informação útil na net sobre como determinar qual versão do Windows está sendo executada na máquina em que o script está sendo executado (Server 2003, Server 2008 R2 etc.). Alguma idéia de como posso fazer isso?

Vermin
fonte
Eu pesquisei por 30 segundos e encontrei eggheadcafe.com/software/aspnet/31845351/…
ta.speot.is
obrigado por essa ajuda, acho que tenho algumas coisas para aprender quando pesquiso na net por respostas. por interesse, o que você digitou no google para encontrar essa resposta?
Vermin
@Vermin Eu tentei alguns baseados nessas palavras, então eu li vários resultados: usando o PowerShell para determinar a versão do Windows
KCotreau

Respostas:

7

Este é o que eu iria com:

gwmi win32_operatingSystem | select name

Como Todda.speot.é mencionado, esse é o mesmo link que encontrei, mas há muitas respostas dentro dele, e testei-as. Aquele que eu dei parece dar a você o que você quer, embora você tenha que analisá-lo (acho que é o termo certo).

Aqui está um exemplo de saída:

Microsoft Windows Server 2003 R2 Standard x64 Edition|C:\WINDOWS|\Device\Harddisk0\Partition1

http://www.eggheadcafe.com/software/aspnet/31845351/reliable-way-to-get-windows-version.aspx

KCotreau
fonte
2
Get-WmiObject -Class Win32_OperatingSystem | ForEach-Object -MemberName Caption

Ou golfado

gwmi win32_operatingsystem |% caption

Resultado

 Microsoft Windows 7 Ultimate 
Steven Penny
fonte
1

Eu usaria:

gwmi win32_operatingSystem | selecionar legenda

Nenhuma 'análise' é necessária. ; ^)

Amostra de saída:

Edição x64 do Microsoft Windows Server 2003 R2 Standard

MicaH
fonte