Comment vérifiez-vous quelle version de Windows Management Framework (WMF) est installée? Il semble que cela devrait être simple à découvrir, mais je ne peux pas. Même googler un tas de versions différentes de la question s'avère peu ou rien.
Ce n'est pas dans appwiz.cpl, et regedit ne trouve rien pour "Windows Management Framework" et il trouve trop de choses superflues pour "wmf"
Je veux juste savoir comment le vérifier, de manière raisonnable. Existe-t-il une clé de registre pour cela? Y a-t-il un fichier que je peux vérifier? N'importe quoi???
La chose la plus proche que j'ai pu trouver était ici sur serverfault: Méthodes pour détecter la version de Windows Management Framework . Cette question commence de la même façon, mais elle semble demander une méthode spécifique de vérification à utiliser dans un GPO; c'est peut-être pour cela qu'il n'a obtenu aucune réponse.
Il y a plusieurs ordinateurs sur lesquels je veux vérifier cela. Celui par lequel je commence est Windows Server 2008 R2 Standard. Il y aura également d'autres systèmes d'exploitation Windows Server.
Si vous connaissez des balises qui fonctionnent mieux que les miennes, veuillez commenter ou redéfinir; Je n'ai rien trouvé qui décrivait bien cette question.
Mise à jour: certaines personnes semblent penser que "$PSVersionTable
"(et/ou diverses propriétés de celui-ci) est une réponse. J'ai finalement réalisé récemment qu'il s'agit d'une variable PowerShell (peut-être que le préfixe 'PS' aurait dû le donner pour moi, mais il ne l'a pas fait) et j'ai essayé de creuser Cela a conduit à une autre question: Que représente le contenu de $ PSVersionTable de PowerShell? .
Update2: Sur la base de toutes les informations que j'ai rassemblées maintenant et de ma meilleure compréhension, je suis assez certain que la variable intégrée de PowerShell $PSVersionTable.PSVersion
n'est pas techniquement la réponse à cela, mais que c'est souvent (parfois? toujours? pas sûr) la même chose, car dans les versions cela peut aller de pair. Le $PSVersionTable.WSManStackVersion
la variable pourrait être ce que je veux, mais la courte description officielle de cette propriété la montre comme représentant la pile WS-Management. La pile WS-Management est-elle la même chose que WMF? La recherche sur Google suggère qu'ils sont étroitement liés, mais je ne sais pas si la réponse est oui.
Consultez cette documentation de Microsoft:
Dans la section "Mise à niveau de Windows Powershell existante", il est dit spécifiquement:
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.
Je pense que c'est la réponse les gars. Courir $PSVersionTable.PSVersion
pour obtenir la version.
Je sais que c'est une vieille question, mais pour d'autres qui trouvent cela à partir d'une recherche Google:
Je voudrais faire valoir que $PSVersionTable.PSVersion
est l'indicateur le plus fiable de la version de WMF. Voir les exemples ci-dessous.
Nouvelle installation de Windows 7:
Name Value
---- -----
PSVersion 2.0
WSManStackVersion 2.0
CLRVersion 2.0.50727.5420
BuildVersion 6.1.7601.17514
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1
Windows 7 après l'installation de .NET 4.5 et WMF 4:
Name Value
---- -----
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.18408
BuildVersion 6.3.9600.16406
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2
Windows 7 après l'installation de WMF 5:
Name Value
---- -----
PSVersion 5.0.10586.117
WSManStackVersion 3.0
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.10586.117
CLRVersion 4.0.30319.18408
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Windows 10, qui inclut WMF 5 prêt à l'emploi:
Name Value
---- -----
PSVersion 5.0.10586.122
WSManStackVersion 3.0
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.10586.122
CLRVersion 4.0.30319.42000
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Comme vous pouvez le voir, la version de $PSVersionTable.WSManStackVersion.Major
ne semble changer que lors de l'installation de WMF 4, puis reste à 3. Alors que $PSVersionTable.PSVersion.Major
semble signaler la version exacte de WMF.
Dans PowerShell, il est disponible à partir de $PSVersionTable.WSManStackVersion.Major
Mon système Windows 7 domestique:
PS C:\Users\Brian> $PSVersionTable
Name Value
---- -----
CLRVersion 2.0.50727.5485
BuildVersion 6.1.7601.17514
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1
PS C:\Users\Brian> $PSVersionTable.WSManStackVersion.Major
2
PS C:\Users\Brian>
Ensuite, après avoir installé un nouveau cadre de gestion Windows:
PS C:\Users\Brian> $PSVersionTable
Name Value
---- -----
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.34209
BuildVersion 6.3.9600.16406
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2
PS C:\Users\Brian>
Vous vérifiez quelle version de Windows Management Framework (WMF) est installée en identifiant le numéro de la base de connaissances de la version que vous recherchez, puis en utilisant, dans ce cas, une requête wmic, pour déterminer si ce numéro de la base de connaissances a été installé. Ces exemples sont tous basés sur l'utilisation de cmd.exe pour exécuter les commandes.
** Commandes pour vérifier WMF 4.0
wmic qfe get hotfixid | find "KB2819745"
echo %ERRORLEVEL%
** Exemple d'exécution des commandes:
C:\Program Files\Tivoli\TSM\baclient> wmic qfe get hotfixid | find "KB2819745"
KB2819745
C:\Program Files\Tivoli\TSM\baclient> echo %ERRORLEVEL%
0
Dans l'exemple ci-dessus, WMF 4.0 est installé: la base de connaissances est renvoyée à partir de la requête wmic et d'un code retour zéro.
** Commandes pour vérifier WMF 5.0
wmic qfe get hotfixid | find "KB3134760"
echo %ERRORLEVEL%
** Exemple d'exécution des commandes:
C:\Program Files\Tivoli\TSM\baclient> wmic qfe get hotfixid | find "KB3134760"
C:\Program Files\Tivoli\TSM\baclient> echo %ERRORLEVEL%
1
Ainsi, dans l'exemple ci-dessus, WMF 5.0 n'est pas installé: rien n'est retourné par la requête wmic et un code retour différent de zéro.
Il est possible que vous ayez utilisé une autre base de connaissances pour installer un niveau donné de WMF, mais c'est ce avec quoi je travaille actuellement.
Et je vérifie toujours PowerShell (qui est installé ou mis à niveau dans le cadre de WMF):
powershell.exe -NoLogo -Sta -NoProfile -NonInteractive -Command "Write-Host $PSVersionTable.PSVersion"
echo %ERRORLEVEL%
Il y a des problèmes lors de la mise à niveau vers WMF 4.0 (et encore plus tard vers 5.0) si .NET 4.5 n'est pas installé, donc si la commande PS génère une erreur, vous devez probablement installer .NET 4.5.
S'il est installé, vous le trouverez dans "appwiz.cpl". N'oubliez pas de regarder sous "Afficher les mises à jour installées", car le WMF est distribué comme une mise à jour Windows avec des numéros de KB uniques pour les différentes versions de Windows.