Методы определения версии Windows Management Framework

12

В Windows 7 и Windows 2008 R2 потенциально могут быть установлены WMF 2, WMF 3 или WMF 4 . Windows 2012 может иметь WMF3 или 4, а 2012 R2 имеет WMF 4.

Я ищу метод, чтобы найти, какая версия установлена. Надеюсь, это можно будет найти через WMI, поэтому я могу использовать его как в фильтрах групповой политики, так и в качестве проверки в сценариях Powershell, я планирую создать такие функции, которые требуют функциональности, доступной только при наличии WMF 3 или 4.

Я должен задавать вопрос неправильно, потому что я не нахожу ответы в Google.

Zoredache
источник
Вы спрашиваете, как запустить что-то вроде, $PSVersionTable.PSVersionно с помощью WMI?
TheCleaner
Версия $PSVersionTable.PSVersionвсегда соответствует версии установленного WMF? Если так, этого может быть достаточно. Возможность получить это значение через WMI была бы полезной.
Zoredache
Не будет ли это $ PSVersionTable.WSManStackVersion для версии WMF?
ErikE
@ErikE - Я думаю, это зависит от того, нужна ли ему версия Host или реальная версия Powershell.
TheCleaner
2
@Zoredache - Если вы ищете способ убедиться, что вы можете запускать скрипт GPO или PS на компьютере, я думаю, вам нужно сначала определить, установлен ли Powershell и какая это версия. Это можно сделать через реестр HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngineдля версии 1 или 2, а HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngineдля версии 3 или 4 ... под PowerShellVersionзначением. Это то, что вы после?
TheCleaner

Ответы:

9

Если вы ищете способ убедиться, что вы можете запускать скрипт GPO или PS на компьютере, я думаю, вам нужно сначала определить, установлен ли Powershell и какая это версия. Это можно сделать через реестр HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngineдля версии 1 или 2, а HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngineдля версии 3 или 4 ... в значении PowerShellVersion. Это то, что вы после?

Переменная Powershell: $ PSVersionTable.PSVersion также содержит информацию о WMF.

Очиститель
источник
Версия WMF или PowerShell - это массив: «PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}».
AnneTheAgile
6

Вы можете просто ввести «хост» в Powershell, чтобы увидеть версию «Windows Management Framework».

PS> (host).Version
Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      -1     -1      
Mahesh27
источник
0

Установочный пакет для PowerShell находится внутри установщика WMF. Версия установщика WMF совпадает с версией PowerShell; не существует отдельного установщика для Windows PowerShell.

Версия PS = Версия WMF

Если вам нужно обновить существующую версию PowerShell, в Windows используйте следующую таблицу, чтобы найти установщик для той версии PowerShell, которую вы хотите обновить.

Windows PS 3.0 PS 4.0 PS 5.0 PS 5.1 Windows 10 (см. Примечание 1) Windows Server 2016 - - - установлен Windows 8.1 Windows Server 2012 R2 - установлен WMF 5.0 WMF 5.1 Windows 8 Windows Server 2012 установлен WMF 4.0 WMF 5.0 WMF 5.0 WMF 5.1 Windows 7 SP1 Windows Сервер 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
источник