Quantcast
Channel: /r/powershell – How to Code .NET
Viewing all articles
Browse latest Browse all 8793

Add paravirtual SCSI controller to running machine

$
0
0

This has come up several times for me, and I got frustrated that I can create a SCSI controller via the GUI and then add a drive to it without turning a machine off, but Add-SCSIController does everything backwards – requiring you to power off the machine, create a drive, pipe the drive into add-SCSIController, creating and moving to the right bus.

Function New-WSOScsiController { [cmdletbinding()] param( [parameter(Mandatory=$True,ValueFromPipeline=$True)] [VMware.VimAutomation.ViCore.Types.V1.Inventory.VirtualMachine] [VMware.Vim.VirtualMachine] $VM ) Begin{} Process { if ($VM -is [VMware.VimAutomation.ViCore.Types.V1.Inventory.VirtualMachine]) { $VM = $VM | Get-View -ErrorAction Stop } else { $VM.UpdateViewData() } $Controllers = $VM.Config.Hardware.Device | Where-Object {$PSItem -is [VMware.Vim.ParaVirtualSCSIController] -or $PSItem -is [VMware.Vim.VirtualLsiLogicSASController] -or $PSItem -is [VMware.Vim.VirtualLsiLogicController]} While ($Controllers.BusNumber -contains [int]$BusNumber -or $BusNumber -ge 10) { $BusNumber++ } '{0} - Adding Paravirtual ParaVirtualSCSIController, Bus Number: {1}' -f $VM.Name,$BusNumber | Write-Verbose $storagespec = New-Object VMware.Vim.VirtualMachineConfigSpec $NewSCSIDevice = New-Object VMware.Vim.VirtualDeviceConfigSpec $NewSCSIDevice.operation = "add" $NewSCSIDevice.device = New-Object VMware.Vim.ParaVirtualSCSIController $NewSCSIDevice.device.key = -222 $NewSCSIDevice.device.busNumber = $BusNumber $NewSCSIDevice.device.sharedBus = "noSharing" $storageSpec.deviceChange += $NewSCSIDevice $VM.ReconfigVM($storageSpec) $VM.UpdateViewData() $VM.Config.Hardware.Device | Where-Object { $PSItem -is [VMware.Vim.ParaVirtualSCSIController] -and $PSItem.BusNumber -eq $BusNumber } } } 

submitted by /u/SaladProblems
[link] [comments]

The post Add paravirtual SCSI controller to running machine appeared first on How to Code .NET.


Viewing all articles
Browse latest Browse all 8793

Trending Articles