Working in the Datacenter – HP BIOS Cmdlets for Windows PowerShell (x64)
Posted by Mikael Nystrom on March 6, 2016
For customers running HP ProLiant servers in the datacenter (many of my customers do) it is now possible to modify the BIOS settings using PowerShell much easier then it used to be. The reason is that HP have released a PowerShell module that makes it possible to modify many of the settings, it actually also works remotely and even in WinPE. So, after it has been installed on a computer and you open up PowerShell and type Get-Help BIOS, you will get this:
The little trick
It seems to be some confusion on how these CmdLets work, but it is very simple. The first command you need to execute is the Connect- CmdLet and that also applies when you run the command on the localhost and a connection does require name and password, this part actually sucks. it would have been so much smarter of HP to accept that commands that are executed locally did not ask for credentials, but that is how it works right now.
The Cool thing
It is possible to connect to multiple servers at the same time and then all commands will be executed in parallel
Connect to the BIOS
$ComputerName = "SRV01" $UserName = "Administrator" $Password = "P@ssw0rd" $Credentials = New-Object System.Management.Automation.PSCredential -ArgumentList "$COMPUTERNAME\$UserName", ($Password | ConvertTo-SecureString -AsPlainText -Force) $Con = Connect-HPBIOS -IP $env:COMPUTERNAME -Credential $Credentials -ErrorAction Stop
Configure for Tree Hugging Mode
Set-HPBIOSPowerProfile -Profile Minimum_Power -Connection $Con Set-HPBIOSPowerRegulator -Regulator Dynamic_Power_Savings -Connection $Con Write-Output "$ScriptName - HP PowerProfile is set to $((Get-HPBIOSPowerProfile -Connection $Con).HPPowerProfile)" Write-Output "$ScriptName - HP PowerRegulator is set to $((Get-HPBIOSPowerRegulator -Connection $Con).HPPowerRegulator)"
Configure for High Performance
Set-HPBIOSPowerProfile -Profile Maximum_Performance -Connection $Con Set-HPBIOSPowerRegulator -Regulator Static_High_Performance -Connection $Con Write-Output "$ScriptName - HP PowerProfile is set to $((Get-HPBIOSPowerProfile -Connection $Con).HPPowerProfile)" Write-Output "$ScriptName - HP PowerRegulator is set to $((Get-HPBIOSPowerRegulator -Connection $Con).HPPowerRegulator)"