Métodos para detectar a versão do Windows Management Framework

12

O Windows 7 e o Windows 2008 R2 potencialmente podem ter o WMF 2, WMF 3 ou WMF 4 instalado. O Windows 2012 pode ter WMF3 ou 4 e o 2012 R2 possui o WMF 4.

Estou procurando um método para descobrir qual versão está instalada. Espero que isso possa ser encontrado via WMI, para que eu possa usá-lo nos dois filtros de Diretiva de Grupo e, como verificação nos scripts do Powershell, estou pensando em criar que requeiram funcionalidade disponível apenas se o WMF 3 ou 4.

Devo estar fazendo a pergunta da maneira errada, porque não estou encontrando respostas no Google.

Zoredache
fonte
Você está perguntando como executar algo parecido, $PSVersionTable.PSVersionmas usando o WMI?
TheCleaner
A versão de $PSVersionTable.PSVersionsempre corresponde à versão do WMF instalada? Nesse caso, isso pode ser suficiente. Ser capaz de obter esse valor via WMI seria útil.
precisa
Não seria $ PSVersionTable.WSManStackVersion para a versão WMF?
ErikE
@ErikE - Eu acho que depende se ele precisa da versão Host ou da versão atual do Powershell.
TheCleaner
2
@ Zoredache - Se você está procurando uma maneira de garantir a execução de um script GPO ou PS em um computador, acho que você precisa primeiro determinar se o Powershell está instalado e qual é a versão. Isso pode ser feito através do registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngineda versão 1 ou 2 e HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngineda versão 3 ou 4 ... abaixo do PowerShellVersionvalor. É isso que você procura?
TheCleaner

Respostas:

9

Se você está procurando uma maneira de garantir a execução de um script GPO ou PS em um computador, acho que você precisa primeiro determinar se o Powershell está instalado e qual é a versão. Isso pode ser feito por meio do registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngineda versão 1 ou 2 e HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngineda versão 3 ou 4 ... no valor do PowerShellVersion. É isso que você procura?

A variável Powershell: $ PSVersionTable.PSVersion também contém informações sobre o WMF.

O limpador
fonte
A versão do WMF, também conhecida como Powershell, é uma matriz: "PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}".
AnneTheAgile 15/12/2015
6

Você pode simplesmente digitar "host" no Powershell e poderá visualizar a versão "Windows Management Framework".

PS> (host).Version
Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      -1     -1      
Mahesh27
fonte
0

O pacote de instalação do PowerShell vem dentro de um instalador do WMF. A versão do instalador do WMF corresponde à versão do PowerShell; não há instalador autônomo para o Windows PowerShell.

Versão PS = Versão WMF

Se você precisar atualizar sua versão existente do PowerShell, no Windows, use a tabela a seguir para localizar o instalador da versão do PowerShell para a qual você deseja atualizar.

Windows PS 3.0 PS 4.0 PS 5.0 PS 5.1 Windows 10 (consulte a Nota1) Windows Server 2016 - - - instalado Windows 8.1 Windows Server 2012 R2 - instalado WMF 5.0 WMF 5.1 Windows 8 Windows Server 2012 instalado WMF 4.0 WMF 5.0 WMF 5.0 WMF 5.1 Windows 7 SP1 Windows Servidor 2008 R2 SP1 WMF 3.0 WMF 4.0 WMF 5.0 WMF 5.1

https://docs.microsoft.com/en-us/powershell/scripting/install/installing-windows-powershell?view=powershell-5.1

SebbV
fonte