Metody wykrywania wersji systemu Windows Management Framework

12

W systemach Windows 7 i Windows 2008 R2 potencjalnie może być zainstalowany program WMF 2, WMF 3 lub WMF 4 . Windows 2012 może mieć WMF3 lub 4, a 2012 R2 ma WMF 4.

Szukam metody sprawdzenia, która wersja jest zainstalowana. Mam nadzieję, że można to znaleźć za pomocą WMI, więc mogę używać go w obu filtrach zasad grupy, a jako sprawdzian w skryptach Powershell planuję zbudować, które wymagają funkcjonalności dostępnej tylko, jeśli WMF 3 lub 4.

Muszę zadawać pytanie w niewłaściwy sposób, ponieważ nie znajduję odpowiedzi w Google.

Zoredache
źródło
Czy pytasz, jak uruchomić coś takiego, $PSVersionTable.PSVersionale używając WMI?
TheCleaner,
Czy wersja $PSVersionTable.PSVersionzawsze odpowiada zainstalowanej wersji WMF? Jeśli tak, to może wystarczyć. Pomocna byłaby możliwość uzyskania tej wartości za pośrednictwem WMI.
Zoredache
Czy nie byłoby to jednak $ PSVersionTable.WSManStackVersion dla wersji WMF?
ErikE
@ErikE - Myślę, że to zależy od tego, czy potrzebuje wersji Hosta, czy faktycznej wersji PowerShell.
TheCleaner
2
@Zoredache - Jeśli szukasz sposobu, aby upewnić się, że możesz uruchomić skrypt GPO lub PS na komputerze, myślę, że musisz najpierw ustalić, czy Powershell jest w ogóle zainstalowany i jaka jest wersja. Można to zrobić za pośrednictwem rejestru HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEnginedla wersji 1 lub 2, a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEnginedla wersji 3 lub 4 ... poniżej PowerShellVersionwartości. Czy o to ci chodzi?
TheCleaner

Odpowiedzi:

9

Jeśli szukasz sposobu, aby upewnić się, że możesz uruchomić skrypt GPO lub PS na komputerze, myślę, że musisz najpierw ustalić, czy Powershell jest w ogóle zainstalowany i jaka jest wersja. Można to zrobić za pośrednictwem rejestru HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEnginedla wersji 1 lub 2, a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEnginedla wersji 3 lub 4 ... poniżej wartości PowerShellVersion. Czy o to ci chodzi?

Zmienna Powershell: $ PSVersionTable.PSVersion przechowuje również informacje dotyczące WMF.

TheCleaner
źródło
WMF, czyli wersja Powershell, to tablica: „PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}”.
AnneTheAgile,
6

Możesz po prostu wpisać „host” w programie Powershell, aby wyświetlić wersję „Windows Management Framework”.

PS> (host).Version
Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      -1     -1      
Mahesh27
źródło
0

Pakiet instalacyjny programu PowerShell znajduje się w instalatorze WMF. Wersja instalatora WMF jest zgodna z wersją programu PowerShell; nie ma samodzielnego instalatora dla Windows PowerShell.

Wersja PS = wersja WMF

Jeśli musisz zaktualizować istniejącą wersję programu PowerShell, w systemie Windows skorzystaj z poniższej tabeli, aby zlokalizować instalator wersji programu PowerShell, którą chcesz zaktualizować.

Windows PS 3.0 PS 4.0 PS 5.0 PS 5.1 Windows 10 (patrz Uwaga 1) Windows Server 2016 - - - zainstalowany Windows 8.1 Windows Server 2012 R2 - zainstalowany WMF 5.0 WMF 5.1 Windows 8 Windows Server 2012 zainstalowany WMF 4.0 WMF 5.0 WMF 5.1 Windows 7 SP1 Windows Serwer 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
źródło