2011年2月27日日曜日

VMware vSphere PowerCLI - 新規登録した仮想マシンを起動したときに出るUUID確認をスクリプトで行う


既存のVMをESXホストへ登録し、VMを起動した時に下図のような確認ダイアログボックスが出る時がある。
内容は、"キャンセル"、"I_moved it"、"I_copied it"だ。
これは、UUID を変更するかどうかの確認で、"I_moved it"にした場合にそのVMのUUIDが変更される。



さて、PowerCLIで仮想マシンをESXへ登録し、起動した際にももちろん聞かれることとなる。
PowerCLIでVMを起動しても、vSphere Clientから同様に上記確認が出る(確か、サマリタブあたりに)。
これをいちいち、vSphere Clientから操作するわけにも行かないので、スクリプトから自動的に何れかのオプションを選択して、起動してしまいたい。
方法は、下記。


$vmview = Get-VM "仮想マシン名" | Get-View
$msgUuid = "msg.uuid.altered:“
$choice = 0
if($vmview.Runtime.Question -ne $null -and $vmview.Runtime.Question.Text.StartsWith($msgUuid)) {
$vmview.AnswerVM($vmview.Runtime.Question.Id, $choice)
}

ここで、
  • $msgUuidの文字列は、右図メッセージ中の最初の文字列
    (msg.uuid.altered:The virtual …というメッセージ)
  • $choiceの値は下記
    0: キャンセル
    1: I _moved it
    2: I _copied it
また、$vmview.Runtime.Questionは起動後しばらくしないとセットされないので注意。
sleepなどで十秒ほど待つ必要があります。

0 件のコメント: