SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SCVMM で複数のスナップショットを戻す

leave a comment

SCVMM や Hyper-V Manager を使うと複数のゲスト OS に対して同時にスナップショットを取得することはできるのですが、
複数のゲスト OS の特定のスナップショットを一括で戻すという機能が見当たりません。

Try & Error で検証をしていると複数のゲスト OS のスナップショットをグループ化して戻したいときはありますよね。

SCVMM 2008 R2 (無印も) にはゲスト OS 用のコマンドレットが含まれているのでそちらを利用して複数のゲスト OS の
スナップショットを戻す PowerShell のスクリプトを勉強も兼ねて書いてみました。

PowerShell をはじめて使うのでものすごいおおざっぱなコードです…。。
もっと勉強しないとですね。

# 対象のゲスト OS 名とスナップショットを指定
$VM = @(
@("SERVER1", 1),
@("SERVER2", 1),
@("CLIENT1", 0)
);

$i = 0;
While ($i -lt $VM.count)
{
Write-Output $VM[$i][0];
$Checkpoints = Get-VMCheckpoint -VM $VM[$i][0];
Restore-VMCheckpoint -VMCheckPoint $Checkpoints[$VM[$i][1]]; $i++;
};

ゲスト OS 名とリストア対象のスナップショットの番号を二次元配列にいれてループしているだけの簡単なスクリプトですが、
複数のゲスト OS を特定の状態に戻す時には割と便利だなと感じてます。

アップグレードの検証をしているとかなりの台数でアップグレード前後の状態を一括で戻すことがあるのでその時のために作ってみました。

現在はシーケンシャルに実行のため、一つのスナップショットの復元が終わるまで次のスナップショットの復元は開始されません。
時間のあるときにバックグラウンドジョブ化したいと思います。
PowerShell 2.0 CTP のときはバックグラウンドジョブは [Start-PSJob] だったようなのですが RTM では [Start-Job] になっているみたいですね。
# [Get-Command] で [Start-PSJob] を探しても見つからず、なくなったのかと思ってしまいました。

Share

Written by Masayuki.Ozawa

9月 9th, 2009 at 11:17 pm

Posted in System Center

Leave a Reply