2014/04/20

Windows Management Frameworkについて~おさらいとWMF 4.0へアップグレード

image
以前から気になっていた「Script Browser for Windows PowerShell ISE」のv1.0が先日リリースされました。パチパチ~
早速インストールしてみたところ、Windows 7 64bitのクライアントPCはWindows Management Framework(以後、WMF)のバージョンが古いためインストールできませんと怒られました。
怒られて分かった事は、PowerShellを使っているはずなのにWMFをよく理解していなかった事。
今回は、Windows Management FrameworkのおさらいとWMF 4.0へのアップグレードについてをメモ。
WMF 4.0を実行してはいけない環境があるので注意したいところですね。

Script Browser for Windows PowerShell ISEのシステム要件

Script Browser for Windows PowerShell ISE」 v1.0のシステム要件は下記の通り。
  • Supported operating system: Windows 7, Windows 8, Windows Server 2008 R2, Windows Server 2012, or Windows Server 2012 R2
  • Microsoft .NET Framework version 4.5 or a later version
  • Windows Management Framework 3.0 or a later version 
  • Windows Search Service
Windows 7 SP1のクライアントPCにインストールしようとすると、予想通りシステム要件を満たしていませんでした。
更新プログラムの適用状態が最新でもWMFは2.0のため、WMF 3.0または4.0へアップグレードをする必要があります。
image

Windows Management Framework とは?v4.0とは?

Windows Management Frameworkとは、Windowsのシステム管理フレームワークです。
皆さんが大好きなPowerShellやPowerShell ISE(アイス)は、WMFにバンドルされている機能です。
WMFをアップグレードする事で、新しいPowerShellが利用できる=新しいコマンドレットが実行できるようになります。
現時点で最新のWMF 4.0は、Windows 8.1、Windows Server 2012 R2に標準搭載されているシステム管理フレームワークです。
Windows Management Framework 4.0 is now available - Windows PowerShell Blog
WMF 4.0では、次の機能を使用する事が出来ます。
  • Windows PowerShell
  • Windows PowerShell Integrated Scripting Environment (ISE)
  • Windows PowerShell Web Services(Management OData IIS Extension)
  • Windows Remote Management(WinRM)
  • Windows Management Infrastructure(WMI)
  • Server Manager WMI provider
  • Windows PowerShell Desired State Configuration (DSC)

WMF 4.0 をインストール

Windows 7 標準のWMF バージョンは2.0、WMF 4.0をインストールする事でWindows 8.1、Windows Server 2012 R2相当(同等)の管理フレームワークが実装されます。
インストールに当たり、注意点がいくつかありました。非常に重要な内容です。
  • Microsoft .NET Framework 4.5が必要です
  • インストール対象は下記の通り。
    Windows 8には、更新プログラムをインストールする事は出来ません!
    • Windows 7 SP 1
    • Windows Server 2008 R2 SP 1
    • Windows Server 2012
    • Windows Embedded Standard 7
  • 【不可】
    以下のアプリケーションを実行しているサーバーは WMF 4.0 を実行出来ません!

    Windows Management Framework 4.0の[詳細]部を確認すると、「現時点では」と明記されており、2014/04/20時点で改善されているかは分かっていません。
    • System Center 2012 Configuration Manager (SP1 を除く)
    • System Center Virtual Machine Manager 2008 R2 (SP1 を含む)
    • Microsoft Exchange Server 2007
    • Windows Small Business Server 2011 Standard
  • 【可】
    以下のアプリケーションを実行しているサーバーは WMF 4.0 を実行出来ます
    • Microsoft Exchange Server 2013 Service Pack 1
    • Microsoft Exchange Server 2010 SP3 および 更新プログラムのロールアップ 5
    • Microsoft SharePoint Server 2013 Service Pack 1
    • Microsoft SharePoint Server 2010 および 2014 年 2 月の累積的な更新プログラム
特に【不可】と書かれた環境は気を付けたいところです。
私も所有している本の著者「山内 良」さんのブログにも似たような環境で「はまってしまった」との記事がありました。
System Center 2012 RTM > VMM と WMF 3.0 はまだ NG - 山市良のえぬなんとかわーるど
利用環境のポリシー上特に制限されていないのであれば、OSを最新状態にしてからWMF 4.0をインストールしましょう。
Windows Management Framework 4.0 - Download Center
Windows 7 Professional SP 1にWMF 4.0をインストールした限り、OSの再起動を求められる以外注意すべき点はありませんでした。

インストール後のバージョンをチェック

WMF 4.0をインストールする前後の$PSVersionTableを比較してみました。
PowerShellのバージョンが上がっているだけでなく、CLR(Common Language Runtime)やBuild、PowerShellの互換バージョンも変更されています。
Name WMF 2.0 WMF 4.0
CLRVersion 2.0.50727.5477 4.0.30319.18444
BuildVersion 6.1.7601.17514 6.3.9600.16406
PSVersion 2.0 4.0
WSManStackVersion 2.0 3.0
PSCompatibleVersions {1.0, 2.0} {1.0, 2.0, 3.0, 4.0}
SerializationVersion 1.1.0.1 1.1.0.1
PSRemotingProtocolVersion 2.1 2.2
次に、WMF 4.0をインストールする前後のwinrm idのProductVersionを比較してみました。
インストールすることで、WinRMは2.0から3.0へ変更されています。
上の表と見比べると、PS-Management スタックのバージョンとWinRM スタックのバージョンが一致していますね。
WinRMは、リモート管理用の WS-Management プロトコルを実装していますからその点でスタックのバージョンが一致しているのではないか?と予想してます。※違うかもしれないけど・・・
NameWMF 2.0WMF 4.0
OS6.1.76016.1.7601
SP1.01.0
Stack2.03.0
WinRMのバージョンは古い内容ですが、下記URLから確認できます。
Windows リモート管理のバージョン - technet

「Script Browser for Windows PowerShell ISE」を使いたい方は、まずはPowerShellのバージョンをチェック

WMF 4.0 インストール後、「Script Browser for Windows PowerShell ISE」のインストールが出来るようになります。
Script Browser for Windows PowerShell ISE」を使いたい方は、まずはPowerShellのバージョン等を調べてみましょうね!
image
余談:PowerShellのバージョンって切り替え出来るのね
今回の内容を調べている途中に知った事、それはPowerShellのバージョンを切り替え出来る事。
PowerShellのヘルプを見ればわかる事ですけど、-versionのパラメータをつけることで2.0として起動できます。
PowerShell 2.0で起動したい場合は下記のようになります。
>PowerShell -Version 2.0
実行後、$PSVersionTableを実行すると違いがすぐに分かります。 
スポンサーリンク

スポンサーリンク