どのバージョンのWindows Management Frameworkがインストールされていますか?


16

インストールされているWindows Management Framework(WMF)のバージョンを確認するにはどうすればよいですか?見つけるのは簡単なことのように思えますが、私はできません。さまざまなバージョンの質問をグーグルで検索しても、ほとんど何も起こりません。

appwiz.cplにはなく、regeditは「Windows Management Framework」に対応するものを何も見つけません。また、「wmf」には余分なものを見つけすぎます。

妥当な方法でそれをチェックする方法を知りたいだけです。レジストリキーはありますか?チェックできるファイルはありますか?何でも?

私が見つけることができた最も近いものは、serverfaultでここにありました:Windows Management Frameworkのバージョンを検出する方法。その質問は同じことから始まりますが、GPOで使用される特定のチェック方法を求めているようです。おそらくそれが答えを得られなかった理由です。

これを確認したいコンピューターが複数あります。私が始めているのは、Windows Server 2008 R2 Standardです。他のWindows Serverオペレーティングシステムもあります。

私が持っているものよりもうまく機能するタグを知っている場合は、コメントまたはタグを付け直してください。この質問をうまく説明できるものは見つかりませんでした。


更新:一部の人々は、「$PSVersionTable」(および/またはそのさまざまな特性)が答えだと考えているようです。私はついに、これがPowerShell変数であることに最近気づきました(おそらく「PS」接頭辞はそれを与えてくれるはずでしたが、そうではありませんでした)、さらに掘り下げようとしました。これにより、別の質問が生じました。PowerShellの$ PSVersionTableの内容は何を表しているのでしょうか?

Update2:私が今収集したすべての情報とより良い理解に基づいて、PowerShellの組み込み変数$PSVersionTable.PSVersionが技術的にこれに対する答えではないことはかなり確信していますが、多くの場合(時々?常に?同じように、バージョンのように手をつないで行くかもしれません。$PSVersionTable.WSManStackVersion変数は、それがWS-Managementのスタックを表すものとして、私が欲しいものでもよいが、そのプロパティのショーの公式の簡単な説明があります。WS-ManagementスタックはWMFと同じものですか?グーグルはそれらが密接に関連していることを示唆していますが、その答えがイエスかどうかはわかりません。


1
可能な重複:serverfault.com/questions/555100/…承認済みの回答がまだない場合でも、回答はコメントにあります。
ウェズリー14

@Wesleyすでにその質問へのリンクを提供し、言及しました。答えはコメントにありません。「$PSVersionTable.PSVersionWMIを使用するなどの実行方法を尋ねていますか?」答えではありません。それは一体何の意味ですか?そのコメントを受け取って、実際に使える答えに変えていただければ幸いです。これ$PSVersionTable.PSVersionはどこかで利用可能な何らかのタイプの変数ですか?はいの場合、WMFバージョンであることが保証されていますか?私が試したecho $PSVersionTable.PSVersionの出力となった$PSVersionTable.PSVersion
Loduwijk

また、その質問の同様のコメントについても同じことが言えます。
ロドゥワイク14

1
あなたはおそらくあなたが走ったecho $PSVersionTable.PSVersionと言ってダウンボットされ、出力を得ました$PSVersionTable.PSVersion-他の質問に対する私のコメント/回答で何を混同していますか?
TheCleaner 14

1
「これをしてこの結果を得た」と言っても、決して下票は出ないはずです。それはあなたがその人が愚かだと思うのであなたがダウン投票していることをほのめかします。これは、想定された「答え」を利用しようとした1つの方法の例にすぎません。その変数のコメントはいくつかのデータを提供しましたが、それを使用する有用な方法はありませんでした。PowerShellの変数であることは知りませんでしたし、誰も言っていませんでした。
ロドゥワイク14

回答:


9

Microsoftのこのドキュメントを参照してください。

https://docs.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell?view=powershell-5.1

「既存のWindows Powershellのアップグレード」セクションでは、具体的に次のように述べています。

PowerShellのインストールパッケージは、WMFインストーラーに含まれています。WMFインストーラーのバージョンはPowerShellのバージョンと一致します。Windows PowerShell用のスタンドアロンインストーラーはありません。

これが答えだと思います。実行$PSVersionTable.PSVersionしてバージョンを取得します。


最後に、Microsoftから直接の決定的で信頼できる回答。ありがとうございました。受け入れられ、+ 1。
ロドゥワイク

10

これは古い質問ですが、Google検索でこれを見つけた他の人には:

これが$PSVersionTable.PSVersionWMFのバージョンの最も信頼できる指標であると主張したいと思います。以下の例を参照してください。

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

.NET 4.5およびWMF 4のインストール後のWindows 7:

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

WMF 5インストール後のWindows 7:

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には、すぐに使えるWMF 5が含まれています。

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

ご覧のように、バージョン$PSVersionTable.WSManStackVersion.MajorはWMF 4インストールでのみ変更され、その後は3のまま$PSVersionTable.PSVersion.Majorです。WMFの正確なバージョンを報告しているようです。


最も信頼性の高い指標が何であるかを説明します。Windowsの各バージョンのデフォルトのWMF、および各Windows Management Frameworkで使用されているKB番号を見つけて、それらのバージョン/ KBを確認し、大きなケースステートメントを実行します。つまり、おそらくPSVersionで十分ですが、指摘されているように、私たちはそれを知りません。または、少なくとも、私はそれを知りません。しかし、KBとOSのバージョンがあれば、WMFがインストールされていることがわかります。(しかし、一歩下がって、なぜWMFバージョンとPSVersionを知る必要があるのか​​興味があります。)
トッドウォルトン

これは受け入れられた答えでなければなりません。すべてのKBを見つけることで徹底的な答えが得られますが、この答えは少なくとも1つのWindowsバージョン(2012 R2)で確認できる合理的なアプローチです。
リッチベル

@ToddWalton当時、WMFバージョンが必要だった理由の詳細は覚えていません。私が覚えているのは、私がやっていることには、特定のバージョンのWMFがインストールされているという前提条件があり、それはPowerShellではなかったことです。私はそれが何であったか覚えていないので、多分それはPowerShellを使用したものだった。私はその仕事にもう2年ほど従事していないので、その仕事の私の記憶はスイスのチーズです。
Loduwijk

@RichVelあなたは正しかった、その答えは受け入れられるべきだった。なぜ私がチェックマークをそのチェックマークに切り替えなかったのかはわかりません。ただし、この時点で、実際に決定的で信頼できる回答が最近提供されたため、代わりにその回答を受け入れました。マイクは昨年、彼の答えがチェックされなかったことをすみません。
Loduwijk

3

PowerShellでは、次から入手できます。 $PSVersionTable.WSManStackVersion.Major

私のホームWindows 7システム:

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>

次に、新しいWindows Management Frameworkをインストールした後:

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>

1
これは間違っていると思います。Windows Server 2012 R2システムにWMF 5.1をインストールしたところ、WSManStackVersion当初は3.0でしたが、3.0のままでした。最良のガイドは、最初の2つのコンポーネントがPSVersionWMFバージョンと同じになることだと思います。
リッチベル

0

インストールされている場合は、「appwiz.cpl」にあります。WMFは、Windowsバージョンごとに一意のKB番号を持つWindowsアップデートとして配布されるため、「インストールされたアップデートを表示する」を確認してください。

Windows 7 SP 1にインストールされたWMF 3.0


0

チェックするバージョンのKB番号を特定し、この場合はwmicクエリを使用して、そのKB番号がインストールされているかどうかを確認することにより、インストールされているWindows Management Framework(WMF)のバージョンを確認します。これらの例はすべて、cmd.exeを使用してコマンドを実行することに基づいています。

** WMF 4.0を確認するコマンド

wmic qfe get hotfixid | find "KB2819745"
echo %ERRORLEVEL%

**コマンドの実行例:

C:\Program Files\Tivoli\TSM\baclient> wmic qfe get hotfixid | find "KB2819745"
KB2819745

C:\Program Files\Tivoli\TSM\baclient> echo %ERRORLEVEL%
0

上記の例では、WMF 4.0がインストールされています。KBは、wmicクエリから返され、リターンコードはゼロです。

** WMF 5.0を確認するコマンド

wmic qfe get hotfixid | find "KB3134760"
echo %ERRORLEVEL%

**コマンドの実行例:

C:\Program Files\Tivoli\TSM\baclient> wmic qfe get hotfixid | find "KB3134760"
C:\Program Files\Tivoli\TSM\baclient> echo %ERRORLEVEL%
1

したがって、上記の例では、WMF 5.0はインストールされていません。wmicクエリから返されるものはなく、ゼロ以外のリターンコードが返されます。

特定のレベルのWMFをインストールするために別のKBを使用した可能性がありますが、これらは現在取り組んでいるものです。

そして、私は常にPowerShell(WMFの一部としてインストールまたはアップグレードされます)をチェックします:

powershell.exe -NoLogo -Sta -NoProfile -NonInteractive -Command "Write-Host $PSVersionTable.PSVersion"
echo %ERRORLEVEL%

.NET 4.5がインストールされていない場合、WMF 4.0(および5.0以降)にアップグレードするときに問題が発生するため、PSコマンドがエラーを出力する場合は、おそらく.NET 4.5をインストールする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.