http://pubs.vmware.com/vi3/sdk/ReferenceGuide/vim.VirtualMachine.html#reconfigure
仮想マシンの VMX 状態をいくつかの標準に準拠するように更新するスクリプトを作成していますが、再復元が必要な場合に備えて状態をバックアップしたいと考えています。タスクは正常に機能し、次のReconfigVM
方法で状態を取得できます($VM | Get-View).config.extraconfig
私が理解できないのは、VirtualMachineConfigSpecを使用してアイテムを削除する方法です。
そのように値を更新するとしましょう。
$ExtraOptions = @{
"isolation.device.connectable.disable"="true";
"log.rotateSize"="100000";
}
$vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec
Foreach ($Option in $ExtraOptions.GetEnumerator()) {
$OptionValue = New-Object VMware.Vim.optionvalue
$OptionValue.Key = $Option.Key
$OptionValue.Value = $Option.Value
$vmConfigSpec.extraconfig += $OptionValue
}
# ...
foreach($vm in $vms){
$vm.ReconfigVM($vmConfigSpec)
}
ここで、値を変更する前に、構成仕様のバックアップ ハッシュ テーブルを作成するとします。これらの値は更新前には存在しなかったため、以前の値はありません。
A$null
はエラーをスローします。
"isolation.device.connectable.disable"=$null;
空の場合""
は更新されません
"isolation.device.connectable.disable"="";
単純にブール値を元に戻し、整数値を に設定することもできます0
が、構成から値を削除するだけで済みます。
ドキュメントには、次のように記載されていますextraconfig
仮想マシンの追加構成情報。これは、追加オプションに対する一連の変更について説明しています。キーが存在するが値が設定されていないか、値が空の文字列である場合、オプションは削除されます。それ以外の場合、キーは新しい値に設定されます。
ConfigSpec オブジェクトの他のフィールドで明示的に構成可能なパラメーターと競合する構成キーは、黙って無視されます。
編集
空白文字 (つまり" "
) を渡すと、値がfalse
orに設定されます0
。