2010/10/26

PowerShell Management Library for Hyper-Vのインストールメモ

CodePrexで公開されているHyper-V向けのPowerShell管理ライブラリ「PowerShell Management Library for Hyper-V」ですが、インストールに悩む人も多いかと思うので、メモっておきます。あくまでも私なりの方法です。R2 Gold (Jan 18 2010) バージョンの方法です。R2 Goldというと正式版のように見えますが、Beta 版です。もしかしたら永遠の Beta かも。

PowerShell Management Library for Hyper-V
http://pshyperv.codeplex.com/releases/view/38769

(1) 上記URLの PsHyperV_Install.ZIP のリンクをクリックして、HyperV_Install.zip をダウンロードします。リンクのファイル名とダウンロードされるファイル名が違いますが、あまり気にせず...

(2) HyperV_Install.zipを適当な作業フォルダーに展開します。

(3) コマンドプロンプトを開いて、展開先のフォルダーに移動し、install.cmd を実行します。次のように表示されるので、[Enter]を押します。

     Installing HyperV Management Library for PowerShell
  ====================================================
Ensure that .NET Framework 2 and Windows PowerShell are installed
Press[CTRL][C] to abort or
続行するには何かキーを押してください...

(4) install.cmdは、次のコマンドラインを実行しようとします。Server Coreインストールの場合はOKなのですが、フルインストールだとエラーになります (Windowsの機能名が認識されませんでした云々)。どちらもフルインストール環境では既定で利用可能なので、エラーは無視しましょう。

dism /online /enable-feature  /featurename:NetFx2-ServerCore
dism /online /enable-feature /featurename:MicrosoftWindowsPowerShell

(5) 続いて、次のように表示されるので、また[Enter]を押します。C:\Program Files\modules\HyperV フォルダーが作成され、ファイルがコピーされます。

About to create folder and copy PowerShell module.
Press[CTRL][C] to abort or
続行するには何かキーを押してください...

(6) 続いて、次のように表示されるので、またまた[Enter]を押します。

About to set registry entries for PowerShell script execution, module path and console settings
Press[CTRL][C] to abort or
続行するには何かキーを押してください...

(7) install.cmd は、同じフォルダーにある PS_Console.REG を実行して、レジストリを変更します。レジストリエディターからの[続行しますか?]の問い合わせに[はい]で答えます。なお、PS_Console.REGが実行されると、PowerShell の実行ポリシーが RemoteSigned (リモートスクリプトはデジタル署名必要、ローカルは不要)に変更されてしまうのでご注意。

(8) install.cmd は、最後に次のように表示します。[Enter]を押すと、PowerShell のウィンドウが表示され、HyperV モジュールが読み込まれるはずです。ですが、実際には“hyperv.Format.ps1xml はデジタル署名云々”のように表示され失敗します。

About to Launch PowerShell
Press[CTRL][C] to abort or
続行するには何かキーを押してください...

(9) PowerShell の実行ポリシーが RemoteSigned なのに、Import-Module のための“ローカル”スクリプトがエラーになるのはこれ如何に? と悩む人は多いはず。Set-ExecutionPolicy Unrestricted で甘いセキュリティ設定にすれば回避できるのですが、安易にセキュリティを緩和すべきではありません。その前に、エクスプローラーで C:\Program Files\modules\HyperV\hyperv.Format.ps1xml のプロパティを開いてください。[ブロックの解除]というボタンがあるはずです。これをクリックします。同じフォルダーにある、.ps1、.xml などすべてのファイルについて、プロパティを開いて[ブロックの解除]ボタンをクリックします。面倒ですが、がんばりましょう。

(10) (8) でinstall.cmd が実行しようとした、次のコマンドラインを実行してみてください。実行ポリシー RemoteSigned のままで、今度はエラーなしでモジュールが読み込まれるはずです。

start %windir%\System32\WindowsPowerShell\v1.0\powershell.exe -noExit -Command "Import-Module '%ProgramFiles%\modules\Hyperv' "

めでたしめでたし。

0 件のコメント: