Méthodes pour détecter la version de Windows Management Framework

12

Windows 7 et Windows 2008 R2 peuvent potentiellement avoir WMF 2, WMF 3 ou WMF 4 installés. Windows 2012 pourrait avoir WMF3 ou 4, et 2012 R2 a WMF 4.

Je recherche une méthode pour trouver la version installée. J'espère que cela peut être trouvé via WMI, donc je peux l'utiliser dans les deux filtres de stratégie de groupe, et en tant que vérification dans les scripts Powershell, je prévois de construire qui nécessitent des fonctionnalités uniquement disponibles si WMF 3 ou 4.

Je dois poser la question dans le mauvais sens car je ne trouve pas de réponses sur Google.

Zoredache
la source
Demandez-vous comment exécuter quelque chose comme $PSVersionTable.PSVersionmais en utilisant WMI?
TheCleaner
La version de $PSVersionTable.PSVersioncorrespond-elle toujours à la version de WMF installée? Si oui, cela pourrait suffire. Être en mesure d'obtenir cette valeur via WMI serait utile.
Zoredache
Ne serait-ce pas $ PSVersionTable.WSManStackVersion pour la version WMF?
ErikE
@ErikE - Je suppose que cela dépend s'il a besoin de la version Host ou de la version Powershell réelle.
TheCleaner
2
@Zoredache - Si vous cherchez un moyen de vous assurer que vous pouvez exécuter un script GPO ou PS sur un ordinateur, je pense que vous devez d'abord déterminer si Powershell est même installé et de quelle version il s'agit. Cela peut être fait via le registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEnginepour les versions 1 ou 2, et HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEnginepour les versions 3 ou 4 ... sous la PowerShellVersionvaleur. C'est ce que vous recherchez?
TheCleaner du

Réponses:

9

Si vous cherchez un moyen de vous assurer que vous pouvez exécuter un script GPO ou PS sur un ordinateur, je pense que vous devez d'abord déterminer si Powershell est même installé et de quelle version il s'agit. Cela peut être fait via le registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEnginepour les versions 1 ou 2 et HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEnginepour les versions 3 ou 4 ... sous la valeur PowerShellVersion. C'est ce que vous recherchez?

La variable Powershell: $ PSVersionTable.PSVersion contient également des informations concernant le WMF.

Le nettoyeur
la source
La version WMF aka Powershell est un tableau: "PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}".
AnneTheAgile
6

Vous pouvez simplement entrer "hôte" dans Powershell, vous pourrez voir la version "Windows Management Framework".

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

Le package d'installation de PowerShell est inclus dans un programme d'installation WMF. La version du programme d'installation WMF correspond à la version de PowerShell; il n'y a pas de programme d'installation autonome pour Windows PowerShell.

Version PS = Version WMF

Si vous devez mettre à jour votre version existante de PowerShell, dans Windows, utilisez le tableau suivant pour localiser le programme d'installation de la version de PowerShell vers laquelle vous souhaitez effectuer la mise à jour.

Windows PS 3.0 PS 4.0 PS 5.0 PS 5.1 Windows 10 (voir Remarque 1) Windows Server 2016 - - - installé Windows 8.1 Windows Server 2012 R2 - installé WMF 5.0 WMF 5.1 Windows 8 Windows Server 2012 installé WMF 4.0 WMF 5.0 WMF 5.1 Windows 7 SP1 Windows Server 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
la source