Métodos para detectar la versión de Windows Management Framework

12

Windows 7 y Windows 2008 R2 potencialmente pueden tener instalados WMF 2, WMF 3 o WMF 4 . Windows 2012 podría tener WMF3 o 4, y 2012 R2 tiene WMF 4.

Estoy buscando un método para encontrar qué versión está instalada. Con suerte, esto se puede encontrar a través de WMI, por lo que puedo usarlo dentro de los dos filtros de Política de grupo, y como un control dentro de los scripts de Powershell, estoy planeando construir que requiera funcionalidad solo disponible si WMF 3 o 4.

Debo hacer la pregunta de manera incorrecta porque no encuentro respuestas en Google.

Zoredache
fuente
¿Estás preguntando cómo ejecutar algo como $PSVersionTable.PSVersionusar WMI?
TheCleaner
¿La versión de $PSVersionTable.PSVersionsiempre corresponde a la versión de WMF instalada? Si es así, eso puede ser suficiente. Sería útil poder obtener ese valor a través de WMI.
Zoredache
¿No sería $ PSVersionTable.WSManStackVersion para la versión WMF?
ErikE
@ErikE: supongo que depende de si necesita la versión Host o la versión real de Powershell.
TheCleaner
2
@Zoredache: si está buscando una manera de asegurarse de que puede ejecutar un script GPO o PS en una computadora, creo que primero debe determinar si Powershell está instalado y qué versión es. Esto se puede hacer a través del registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEnginepara la versión 1 o 2, y HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEnginepara la versión 3 o 4 ... debajo del PowerShellVersionvalor. ¿Es eso lo que buscas?
TheCleaner el

Respuestas:

9

Si está buscando una manera de asegurarse de que puede ejecutar un script GPO o PS en una computadora, creo que primero debe determinar si Powershell está instalado y qué versión es. Esto se puede hacer a través del registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEnginepara la versión 1 o 2, y HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEnginepara la versión 3 o 4 ... bajo el valor PowerShellVersion. ¿Es eso lo que buscas?

La variable Powershell: $ PSVersionTable.PSVersion también contiene información sobre el WMF.

El limpiador
fuente
La versión de WMF aka Powershell es una matriz: "PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}".
AnneTheAgile
6

Simplemente ingrese "host" en Powershell, podrá ver la versión de "Windows Management Framework".

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

El paquete de instalación para PowerShell viene dentro de un instalador WMF. La versión del instalador WMF coincide con la versión de PowerShell; No hay un instalador independiente para Windows PowerShell.

Versión PS = Versión WMF

Si necesita actualizar su versión actual de PowerShell, en Windows, use la siguiente tabla para ubicar el instalador para la versión de PowerShell a la que desea actualizar.

Windows PS 3.0 PS 4.0 PS 5.0 PS 5.1 Windows 10 (ver 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.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
fuente