URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

vSphereでVMのUUIDを変更する(スクリプト化)

 前回の続き。

 UUIDを修正しないといけないVMが諸々の事情でそれなりの数だったので、さすがに全部を手作業は嫌だなと。
 そんなわけで、vSphereのPowerCLIを使ってスクリプト化しました。

 vCenter Server等で表示される仮想マシン名で対象を指定するようにしました。

$VC = "127.0.0.1" $VCAdmin = "administrator@vsphere.local" $VCPassword = "password" $TartgetVM = "vm01" Add-PSSnapin VMware.VimAutomation.Core Connect-VIServer -Force -Server $VC -User $VCAdmin -Password $VCPassword $VMs = Get-VM foreach ($VM in $VMs) { $NewUUID = [guid]::NewGuid() | % { $_ -replace "-",""} | % { $_ -replace '([a-z0-9]{2})','$1 '} | % {$_ -replace '^(.{23}) ','$1-'} if ($VM.Name -eq $TartgetVM) { echo "VM: " $VM.Name "New UUID: " $NewUUID $Spec = New-Object VMware.Vim.VirtualMachineConfigSpec $Spec.Uuid = $NewUUID $VM.ExtensionData.ReconfigVM_Task($Spec) Start-Sleep -s 3 } } exit

 スクリプト化すれば操作ミスもなくなるし、他人に任せることもできるようになって楽できますね。