- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Seems I made a mistake, the DeviceName has to be the ConsoleDeviceName.
So it should include the '/vmfs/devices/disks/...' path.
Out of curiosity, do you get the same error when you call the API directly.
Something like this for example
$vmName = 'MyVM'
$diskNAA = 'naa.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
$vm = Get-VM -Name $vmName
$scsi = Get-ScsiController -VM $vm | Where-Object {$_.ExtensionData.BusNumber -eq 1}
$scsiKey = $scsi.Key
$unitNr = Get-HardDisk -VM $vm | %{$_.ExtensionData.UnitNumber} |
Measure-Object -Maximum | select -ExpandProperty Maximum
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$dev = New-Object VMware.Vim.VirtualDeviceConfigSpec
$disk = New-Object VMware.Vim.VirtualDisk
$back = New-Object VMware.Vim.VirtualDiskRawDiskMappingVer1BackingInfo
$back.CompatibilityMode = 'physicalMode'
$back.FileName = ''
$back.DiskMode = [VMware.Vim.VirtualDiskMode]::independent_persistent
$back.Sharing = [VMware.Vim.VirtualDiskSharing]::sharingNone
$back.DeviceName = "/vmfs/devices/disks/$($diskNAA)"
$disk.Key = -100
$disk.ControllerKey = $scsiKey
$disk.UnitNumber = $unitNr + 1
$disk.Backing = $back
$dev.Operation = [VMware.Vim.VirtualDeviceConfigSpecOperation]::add
$dev.FileOperation = [VMware.Vim.VirtualDeviceConfigSpecFileOperation]::create
$dev.Device = $disk
$spec.DeviceChange += $dev
$vm.ExtensionData.ReconfigVM($spec)
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference