Quantcast
Channel: VMware Communities : Discussion List - Automation Tools
Viewing all articles
Browse latest Browse all 9071

Script for attaching multiple existing disk to VM with specific scsi bus number and device number from CSV

$
0
0

Hello,

I was trying to attach multiple vmdk with specific scsi bus number and device number using import-csv method and onyx tools generated code,

 

Looks like it keep failed and  don't able add scsi bus number and associate device number, i have attached CSV for reference

 

#File Path

 

 

$csvpath = "C:\Users\Desktop\Final\TESt0001.csv"

$vmlist = Import-CSV -path $csvpath

 

 

# map the Variables

 

 

foreach ($item in $vmlist) {

 

$vmname = $item.vmname

 

$vmdk = $item.datastorepath

 

 

$busnumber = $item.SCSIBUSNUMBER

 

 

$unitnumber = $item.UNITNUMBER

 

 

$vm = Get-VM $vmname

 

 

Write-Host “Adding Disk “$vmdk” to “$vm” at SCSI ID “$busnumber”:”$unitnumber

 

 

$ctrll = Get-ScsiController -VM $vm | ?{$_.extensiondata.busNumber -eq $busnumber}

 

 

Write-Host “Controller Key “$ctrll.extensiondata.key

 

 

$spec = New-Object VMware.Vim.VirtualMachineConfigSpec

 

 

$spec.deviceChange = New-Object VMware.Vim.VirtualDeviceConfigSpec[] (1)

 

 

$spec.deviceChange[0] = New-Object VMware.Vim.VirtualDeviceConfigSpec

 

 

$spec.deviceChange[0].operation = “add”

 

 

$spec.deviceChange[0].device = New-Object VMware.Vim.VirtualDisk

 

 

$spec.deviceChange[0].device.key = -100

 

 

$spec.deviceChange[0].device.backing = New-Object VMware.Vim.VirtualDiskFlatVer2BackingInfo

 

 

$spec.deviceChange[0].device.backing.fileName = “”+$vmdk

 

 

$spec.deviceChange[0].device.backing.diskMode = “persistent”

 

 

$spec.deviceChange[0].device.connectable = New-Object VMware.Vim.VirtualDeviceConnectInfo

 

 

$spec.deviceChange[0].device.controllerKey = [int]$ctrll.extensiondata.Key

 

 

$spec.deviceChange[0].device.unitNumber = [int]$unitNumber

 

 

$spec.extraConfig = New-Object VMware.Vim.OptionValue[] (1)

 

 

$spec.extraConfig[0] = New-Object VMware.Vim.OptionValue

 

 

$spec.extraConfig[0].key = “scsi” + $busnumber + “:” + $unitnumber

 

 

$vm.ExtensionData.ReconfigVM($spec)

 

 

}

 

Error:

 

Exception calling "ReconfigVM" with "1" argument(s): "The device '0' is referring to a nonexisting controller '0'."

At line:50 char:1

+ $vm.ExtensionData.ReconfigVM($spec)

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException

    + FullyQualifiedErrorId : VimException


Viewing all articles
Browse latest Browse all 9071

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>