Hi,
I'm looking a way to modify the power management settings for the hosts with powercli.
switching between the 4 policy and getting info on hosts having this capability.
I didn't find anything so far
any clue?
thanks
Eric
To get info on the current settings of your hosts:
Get-VMHost | Sort | Select Name,
@{ N="CurrentPolicy"; E={$_.ExtensionData.config.PowerSystemInfo.CurrentPolicy.ShortName}},
@{ N="CurrentPolicyKey"; E={$_.ExtensionData.config.PowerSystemInfo.CurrentPolicy.Key}},
@{ N="AvailablePolicies"; E={$_.ExtensionData.config.PowerSystemCapability.AvailablePolicy.ShortName}}
Name CurrentPolicy CurrentPolicyKey AvailablePolicies
---- ------------- ---------------- -----------------
esxihost0021.domain.local static 1 {static, dynamic, low, custom}
esxihost0022.domain.local static 1 {static, dynamic, low, custom}
esxihost0033.domain.local off 0 static
esxihost0034.domain.local off 0 static
esxihost0041.domain.local static 1 static
esxihost0062.domain.local dynamic 2 {static, dynamic, low, custom}
esxihost0063.domain.local dynamic 2 {static, dynamic, low, custom}
Note: CurrentPolicy off indicates that the host does not support OS-controlled power management or you set the host BIOS to a specific power management policy like static high performance already.
To set the power policy for a host:
$view = (Get-VMHost esxihost24.domain.local | Get-View)
(Get-View $view.ConfigManager.PowerSystem).ConfigurePowerPolicy(X)
Where X equals the key of the policy you want to set (1=static, 2=dynamic, 3=low, 4=custom)
To get info on the current settings of your hosts:
Get-VMHost | Sort | Select Name,
@{ N="CurrentPolicy"; E={$_.ExtensionData.config.PowerSystemInfo.CurrentPolicy.ShortName}},
@{ N="CurrentPolicyKey"; E={$_.ExtensionData.config.PowerSystemInfo.CurrentPolicy.Key}},
@{ N="AvailablePolicies"; E={$_.ExtensionData.config.PowerSystemCapability.AvailablePolicy.ShortName}}
Name CurrentPolicy CurrentPolicyKey AvailablePolicies
---- ------------- ---------------- -----------------
esxihost0021.domain.local static 1 {static, dynamic, low, custom}
esxihost0022.domain.local static 1 {static, dynamic, low, custom}
esxihost0033.domain.local off 0 static
esxihost0034.domain.local off 0 static
esxihost0041.domain.local static 1 static
esxihost0062.domain.local dynamic 2 {static, dynamic, low, custom}
esxihost0063.domain.local dynamic 2 {static, dynamic, low, custom}
Note: CurrentPolicy off indicates that the host does not support OS-controlled power management or you set the host BIOS to a specific power management policy like static high performance already.
To set the power policy for a host:
$view = (Get-VMHost esxihost24.domain.local | Get-View)
(Get-View $view.ConfigManager.PowerSystem).ConfigurePowerPolicy(X)
Where X equals the key of the policy you want to set (1=static, 2=dynamic, 3=low, 4=custom)
excellent.
works like a charme.
thank you very much
Eric
Very nice answer, thank you!
I guess I missed something. I see how to set to static, but how do I set to High Performance?
"static" is the alias name for the "Static High Performance" power management policy.
Here is an onelier to get this done on all hosts of your vcenter
(Get-View (Get-VMHost | Get-View).ConfigManager.PowerSystem).ConfigurePowerPolicy(1)
Where
1=HighPerformance
2=Balanced
3=LowPower
Thanks man. Works excellent.
I like simple code in one line.....