Cores einer virtuellen Maschine ändern

Heute musste ich auf Grund eines VMWare Support Tickets auf allen virtullen Maschinen die Anzahl der vCPUs und deren Cores reduzieren. Für diese Arbeit bietet sich entweder ein Azubi oder die VMWare PowerCli an. Ich habe mich für die zweite Variante entschiden. 🙂

Untenstehend mein Quick & Dirty Skript:

connect-ViServer vcenter.lab.test.de

$TotalvCPU=1
$vCPUcores=4

Get-VM | Where {$_.PowerState -eq "PoweredOff"}  | foreach { 
       $settings=New-Object –Type VMware.Vim.VirtualMAchineConfigSpec –Property @{“NumCoresPerSocket” = $vCPUcores}
       ($_).ExtensionData.ReconfigVM_Task($settings)
       $_ | Set-VM -NumCpu $TotalvCPU -Confirm:$false
}

In der ersten Zeile wirder DNS-Name oder IP-Adresse des VMWare vCenter Server angeben. Die beiden Variablen definieren die Anzahl der vCPUs und deren Cores.

Damit die Anpassung durchgeführt werden kann, muss die VM ausgeschalten sein. Dieser Zustand wird in der Where-Abfrage geprüft.