インストールされているWindows Management Framework(WMF)のバージョンを確認するには、どうすればよいですか?簡単なことのように思えますが、私にはわかりません。さまざまなバージョンの質問をグーグルしても、ほとんど何も起こりません。
それはappwiz.cplになく、regeditは "Windows Management Framework"については何も検出せず、 "wmf"に対して余分なものを大量に検出します
妥当な方法でそれをチェックする方法を知りたいだけです。それのためのレジストリキーはありますか?確認できるファイルはありますか?何か?
私が見つけた最も近いものは、ここserverfaultにありました: Windows管理フレームワークのバージョンを検出するメソッド 。その質問は同じように始まりますが、GPOで使用される特定のチェック方法を要求するようです。おそらくそれが回答を得られなかった理由です。
これを確認したいコンピュータが複数あります。私が始めているのはWindows Server 2008 R2 Standardです。他のWindows Serverオペレーティングシステムもあります。
私が持っているタグよりもうまく機能するタグを知っている場合は、コメントするか、タグを付け直してください。この質問をうまく説明しているものは何も見つかりませんでした。
更新:一部の人々は "$PSVersionTable
"(および/またはさまざまなプロパティ)が答えです。私はついにこれがPowerShell変数であることを最後に認識し(おそらく 'PS'プレフィックスが私にそれを与えるはずでしたが、そうではありませんでした)、Digしようとしましたこれにより、別の質問が生じました: PowerShellの$ PSVersionTableの内容は何を表していますか? 。
Update2:私が今収集したすべての情報と私の理解に基づいて、PowerShellの組み込み変数$PSVersionTable.PSVersion
は技術的にはこれに対する答えではありませんが、バージョンの場合と密接に関係している場合があるため、多くの場合(たまに?常に?わからない)は同じです。 $PSVersionTable.WSManStackVersion
変数は私が欲しいものかもしれませんが、そのプロパティの公式の短い説明は、WS-Managementスタックを表すものとしてそれを示しています。 WS-ManagementスタックはWMFと同じですか?グーグルはそれらが密接に関連していることを示唆していますが、その答えがイエスであるかどうかはわかりません。
Microsoftの次のドキュメントを参照してください。
「既存のWindows Powershellのアップグレード」セクションでは、具体的に次のように述べています。
PowerShellのインストールパッケージは、WMFインストーラーに含まれています。 WMFインストーラーのバージョンはPowerShell;のバージョンと一致します。 Windows PowerShellにはスタンドアロンのインストーラーはありません。
これが正解だと思います。 $PSVersionTable.PSVersion
を実行してバージョンを取得します。
これは古い質問であることは承知していますが、Google検索でこれを見つけた他の人へ:
$PSVersionTable.PSVersion
はWMFのバージョンの最も信頼性の高いインジケーターであることを主張したいと思います。以下の例を参照してください。
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
WMF 5を標準で含むWindows 10:
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の正確なバージョンを報告しているようです。
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管理フレームワークをインストールした後:
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>
チェックしているバージョンのKB番号を特定し、この場合はwmicクエリを使用して、インストールされているWindows Management Framework(WMF)のバージョンを確認し、そのKB番号がインストールされているかどうかを確認します。これらの例はすべて、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クエリから返されたものはなく、ゼロ以外の戻りコードが返されます。
別のKBを使用して特定のレベルのWMFをインストールした可能性がありますが、これらは現在私が作業しているものです。
そして、私は常に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をインストールする必要があります。
インストールされている場合は、「appwiz.cpl」にあります。 WMFは、Windowsのバージョンごとに固有のKB番号を持つWindowsのアップデートとして配布されるため、「インストールされたアップデートの表示」を確認してください。