- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
New harddisks are always assigned to the lowest available unit and cluster numbers.
So in case of the 3th harddisk, you also need to specify to which controller it should go.
A 2nd problem is the harddisk name changes when you move the harddisk around, so in this version I use the UUID to identify a specific harddisk.
The UUID is unique and doesn't change when the harddisk is moved around.
Try like this
$vm = Get-VM -Name $VM_Name
$hd = New-HardDisk -VM $vm -CapacityGB 1 -StorageFormat Thin
$ctrl = New-ScsiController -HardDisk $hd -Type Paravirtual
$hd = Get-HardDisk -VM $vm |
Where {$_.ExtensionData.Backing.UUid -eq $hd.ExtensionData.Backing.Uuid}
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.ChangeVersion = $vm.ExtensionData.Config.ChangeVersion
$spec.DeviceChange += New-Object VMware.Vim.VirtualDeviceConfigSpec
$spec.deviceChange[0].device = $hd.ExtensionData
$spec.deviceChange[0].device.UnitNumber = 0
$spec.deviceChange[0].operation = "edit"
$vm.ExtensionData.ReconfigVM($spec)
$vm = Get-VM -Name $VM_Name
$hd = New-HardDisk -VM $vm -CapacityGB 2 -StorageFormat Thin
$ctrl = New-ScsiController -HardDisk $hd -Type Paravirtual
$hd = Get-HardDisk -VM $vm |
Where {$_.ExtensionData.Backing.UUid -eq $hd.ExtensionData.Backing.Uuid}
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.ChangeVersion = $vm.ExtensionData.Config.ChangeVersion
$spec.DeviceChange += New-Object VMware.Vim.VirtualDeviceConfigSpec
$spec.deviceChange[0].device = $hd.ExtensionData
$spec.deviceChange[0].device.UnitNumber = 0
$spec.deviceChange[0].operation = "edit"
$vm.ExtensionData.ReconfigVM($spec)
$vm = Get-VM -Name $VM_Name
$hd = New-HardDisk -VM $vm -CapacityGB 3 -StorageFormat Thin
$hd = Get-HardDisk -VM $vm |
Where {$_.ExtensionData.Backing.UUid -eq $hd.ExtensionData.Backing.Uuid}
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.ChangeVersion = $vm.ExtensionData.Config.ChangeVersion
$spec.DeviceChange += New-Object VMware.Vim.VirtualDeviceConfigSpec
$spec.deviceChange[0].device = $hd.ExtensionData
$spec.deviceChange[0].device.ControllerKey = $ctrl.ExtensionData.Key
$spec.deviceChange[0].device.UnitNumber = 1
$spec.deviceChange[0].operation = "edit"
$vm.ExtensionData.ReconfigVM($spec)
$vm = Get-VM -Name $VM_Name
$hd = New-HardDisk -VM $vm -CapacityGB 4 -StorageFormat Thin
$ctrl = New-ScsiController -HardDisk $hd -Type Paravirtual
$hd = Get-HardDisk -VM $vm |
Where {$_.ExtensionData.Backing.UUid -eq $hd.ExtensionData.Backing.Uuid}
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.ChangeVersion = $vm.ExtensionData.Config.ChangeVersion
$spec.DeviceChange += New-Object VMware.Vim.VirtualDeviceConfigSpec
$spec.deviceChange[0].device = $hd.ExtensionData
$spec.deviceChange[0].device.UnitNumber = 0
$spec.deviceChange[0].operation = "edit"
$vm.ExtensionData.ReconfigVM($spec)
For a quick test I made some changes to the parameters on the New-Harddisk cmdlets, you will have to update those lines.
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference