Skip to content

VirtuallyThatGuy

Anything VMware , PowerCLI, PowerShell, Automation and some Windows

Menu
  • Home
  • PowerCLI
  • VMware
  • Automation
  • Windows
  • About
Menu

Script: How to Hot Add Memory and CPU (vMem & vCPU vCenter / ESXi Hosts)

Posted on May 7, 2022March 4, 2024 by VirtuallyThatGuy

This is a quick blog post on how to add vMem and vCPU hot plug in vCenter or ESXi host via powerCLI

$cred​​ =​​ Get-Credential
$vCenters​​ =​​ "lab-vcenter01.lab.local",​​ "lab-vcenter02.lab.local"
Connect-VIServer​​ $vCenters​​ -Credential​​ $cred

$Server = Read-Host -Prompt 'Input server  name'
$vmname = Read-Host -Prompt 'Input the VM Name'
$initialCpu = Read-Host -Prompt 'Input initial CPU value'
$initialMem = Read-Host -Prompt 'Input initial mem value'
$CpuStep = Read-Host -Prompt 'Input step for cpu , if not required give 0'
$MemStep = Read-Host -Prompt 'Input step for memory,if not required give 0'
$CpuFinal = Read-Host -Prompt 'Input max limit of CPUs'
$MemFinal = Read-Host -Prompt 'Input max limit of Memory'
##########################################################
Connect-VIServer -Server $Server -User username -Password password
$vm = Get-VM -Name $vmname 
if($vm.PowerState -eq 'PoweredOn') {
Stop-VM -VM $vm -Confirm:$false
}
########## Enable Hot add ##########################
$view = Get-View -VIObject $vm
$vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec
$vmConfigSpec.CpuHotAddEnabled = 'True'
$vmConfigSpec.MemoryHotAddEnabled = 'True'
$view.ReconfigVM($vmConfigSpec)

 #### Configuring the VM to its initial Configuration#######

$vm | Set-VM -NumCpu $initialCpu -Confirm:$false
$vm | Set-VM -MemoryGB $initialMem -Confirm:$false

############ Start the VM ###################

Start-VM -VM $vm

############# ADD CPU/Memory in steps separately ###########

if ( $CpuStep -ne 0) {
for($valCpu = $initialCpu; $valCpu -le $CpuFinal; $valCpu+=$CpuStep)
{
   $vm | Set-VM -NumCpu $valCpu -Confirm:$false
   sleep 30  
 }
}
if($MemStep -ne 0) 
 {
for($valMem = $initialMem; $valMem -le $MemFinal; $valMem+=$MemStep)
{
$vm | Set-VM -MemoryGB $valMem -Confirm:$false
sleep 30
}
} 

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • vROps: Management Pack Troubleshooting
  • Windows AD {Active Directory} (PowerShell) samples
  • Migrate VMs Between vCentres Using Powershell or PowerCLI
  • Set VM Tools to Update Automatically on VM Reboot using powershell
  • Windows Administrator Must Have Powershell Commands

Recent Comments

  • JB on Script: How to get VM with Tag Assignment and export results to csv using PowerCLI or Powershell
  • DL on How to change VCSA root password and bypass BAD PASSWORD: it is based on a dictionary word for vCenter VCSA root account warning
  • 360coolp on How to change VCSA root password and bypass BAD PASSWORD: it is based on a dictionary word for vCenter VCSA root account warning
  • Yogesh on ESXi 8.x, 7.x, 6.x Service sfcbd-watchdog Not Running / Fails to Start – VirtuallyThatGuy
  • VirtuallyThatGuy on ESXi 8.x, 7.x, 6.x Service sfcbd-watchdog Not Running / Fails to Start – VirtuallyThatGuy

Archives

  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017

Categories

  • Automation
  • PowerCLI
  • VMware
  • Windows
© 2026 VirtuallyThatGuy | Powered by Superbs Personal Blog theme