You can use Get-View in combination with Get–VIObjectByVIView to invoke a vSphere Management API view object and retrieve its PowerCLI variant.
You can modify the CPU levels of a virtual machine by using a combination of the
Get-View and
Get-VIObjectByVIView cmdlets.
Prerequisites
Verify that you are connected to a vCenter Server system.
Procedure
- Get the VM2 virtual machine, shut it down, and pass it to the Get-View cmdlet to view the virtual machine view object.
$vmView = Get-VM VM2 | Stop-VM | Get-View
- Create a VirtualMachineConfigSpec object to modify the virtual machine CPU levels and call the ReconfigVM method of the virtual machine view managed object.
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec;
$spec.CPUAllocation = New-Object VMware.Vim.ResourceAllocationInfo;
$spec.CpuAllocation.Shares = New-Object VMware.Vim.SharesInfo;
$spec.CpuAllocation.Shares.Level = "normal";
$spec.CpuAllocation.Limit = -1;
$vmView .ReconfigVM_Task($spec)
- Get the virtual machine object by using the Get-VIObjectByVIView cmdlet and start the virtual machine.
$vm = Get-VIObjectByVIView $vmView | Start-VM