# IncreaseCpuandRamViaVMM.ps1
# User Input Variables
$vmNames=@(
'TESTWINDOWS',
'TESTWINDOWS2'
)
$vmmServer=$env:computername
$setCpuCount=8
$setDynamicMemory=$false
$dynamicMemoryMinimumGB='2GB'
$dynamicMemoryMaximumGB='16GB'
# Get all VMs beloging to specific cloud(s) - this is to dynamically configure all VMs within a virtual cloud
# $vms=Get-SCVirtualMachine -VMMServer $vmmServer|?{$_.Cloud.Name -in $cloudNames}
$dynamicMemoryMinimumMB=$dynamicMemoryMinimumGB/1MB
$dynamicMemoryMaximumMB=$dynamicMemoryMaximumGB/1MB
$results=@()
foreach ($vm in $vms){
$vmName=$vm.Name
$previousCpuCount=$vm.CPUCount
write-host "Upgrading $vmName..."
if($vm.Status -eq 'Running'){
Stop-SCVirtualMachine -VM $vm -Shutdown
}
if($setCpuCount -and !$setDynamicMemory){
if($vm.CPUCount -lt $setCpuCount){
Set-SCVirtualMachine -VM $vm -RunAsSystem -CPUCount $setCpuCount -CPUExpectedUtilizationPercent 20
}else{
write-host "$($vm.Name) CPU Count is $previousCpuCount, which is already equal or higher than $setCpuCount"
}
$results+=@{
vmName=$vmName;
previousCpuCount=$previousCpuCount;
currentCpuCount=$setCpuCount
}
}elseif($setCpuCount -and $setDynamicMemory){
Set-SCVirtualMachine -VM $vm -RunAsSystem `
-CPUCount $setCpuCount -CPUExpectedUtilizationPercent 20 `
-DynamicMemoryEnabled $setDynamicMemory -DynamicMemoryBufferPercentage 20 -MemoryWeight 5000 `
-MemoryMB $dynamicMemoryMinimumMB -DynamicMemoryMinimumMB $dynamicMemoryMinimumMB -DynamicMemoryMaximumMB $dynamicMemoryMaximumMB
$results+=@{
vmName=$vmName;
previousCpuCount=$previousCpuCount;
currentCpuCount=$setCpuCount;
StartupMemory=$dynamicMemoryMinimumMB;
DynamicMemoryMinimumMB=$dynamicMemoryMinimumMB;
DynamicMemoryMaximumMB=$dynamicMemoryMaximumMB
}
}elseif(!$setCpuCount -and $setDynamicMemory){
Set-SCVirtualMachine -VM $vm -RunAsSystem `
-DynamicMemoryEnabled $setDynamicMemory -DynamicMemoryBufferPercentage 20 -MemoryWeight 5000 `
-MemoryMB $dynamicMemoryMinimumMB -DynamicMemoryMinimumMB $dynamicMemoryMinimumMB -DynamicMemoryMaximumMB $dynamicMemoryMaximumMB
$results+=@{
vmName=$vmName;
StartupMemory=$dynamicMemoryMinimumMB;
DynamicMemoryMinimumMB=$dynamicMemoryMinimumMB;
DynamicMemoryMaximumMB=$dynamicMemoryMaximumMB
}
}else{
write-warning "User must input the `$setDynamicMemory and/or `$setCpuCount variables"
break
}
if($vm.Status -eq 'PowerOff'){
Start-SCVirtualMachine -VM $vm
}
}
write-host $($results|out-string).trim()
Categories: