この記事はPowerShell Advent Calendar 2014の12/6分の記事です。
PowerShell Advent Calendar 2014 : ATND
Hyper-VをPowerShellでコントロールする方法は以下の二つの方法があります。
・System Center Virtual Machine Manager(SCVMM)を使う(全OS対象)
・OS組み込みのコマンドレットを使う(Windows Server 2012以降)
これで困るのがSCVMM管理下にない、Windows Server 2008 / 2008 R2環境。めんどくさいWMIを使う必要があります。それは困るので何とかしたいということで作られたのがPSHyperVというオープンソースプロジェクト。
PowerShell Management Library for Hyper-V - Home
Windows Server 2008 / 2008 R2専用です。なぜかといえば、WMIの名前空間に互換性がないのと、2012以降は専用コマンドレットがあるためだと思います。今でもかなり使われているようでdiscussionには最近でも書き込みが見られます。
Windows Server 2012のコマンドレットと多少似ていますが、メンバーとかはかなり違うので、スクリプトをそのまま持っていくことはできないので、注意してください。ということで、サンプル代わりのバックアップ対象のVMのVHDを指定のフォルダにコピーするというスクリプトです。
素直にexport-vm使ってもいいのですが、もともとあまり安定しなかったWindows Backupの変わりなのでこんな感じでVHDのコピーをやってます。
Hyper-V's VHD backup only Windows Server 2008 R2. ...