Home Compute HP releases BIOS PowerShell cmdlets

HP releases BIOS PowerShell cmdlets

by Philip Sellers

PowerShellHP has introduced another batch of over 90 PowerShell cmdlets with a focus on BIOS management.  The new batch of cmdlets joins two previous batches of cmdlets that allow management of iLO, the onboard IP management interface on ProLiant servers,  and for Onboard Administrator, the primary management interface on HP’s BladeSystem hardware.

OneView introduced the ability to set BIOS settings during the provisioning of systems and these BIOS cmdlets put the same level of control into more system admins and engineer’s hands, even if the environment has not adopted HP OneView.

When I read this news, the first thing that popped into mind was using this to ensure that my Windows cluster hosts are set to the correct Power Management mode and easily enough, that is the example that is found in the HP documentation that shipped with the toolkit.   For my Windows clusters running things like Exchange or SQL, we follow the best practice to set the Power Management to Static High Performance mode and this toolkit gives me an easy way to write a script to collect this information from multiple hosts and send an email alert for hosts where this is set incorrectly.

Use Scenarios

The HP BIOS Cmdlets are compatible with both WinPE and standard Windows installations meaning that the BIOS cmdlets can be used during system deployment to adjust and set BIOS settings on a host.  This is useful if an enterprising admin wants to ensure the BIOS settings of the hardware during an System Center Config Management installation or with third party imaging systems like Altiris. Interestingly, there is a cmdlet that create an HP customized WinPE image that is deployed with the BIOS cmdlet distribution.

The bulk of the cmdlets are Get- and Set- verb cmdlets, as you would expect.  These cmdlets allow you to retrieve and set specific settings with each cmdlet.  All of the BIOS cmdlets are listed at the end of this post as an overview.

Getting Started

There are some pre-requisites, but anyone using PowerShell will likely already have the pre-requisites installed.  The pre-req’s are:

The installation for the HP BIOS PowerShell cmdlets is found at www.hp.com/go/powershell.  The download is an MSI and the installation is simple and straight forward.  The QuickSpecs are found here for easy reference.

Connecting & Disconnecting

Connecting to a host is simple.  According to the documentation, the syntax for a connection is very similar to connecting to vCenter Server using PowerCLI.

[code lang=”PowerShell”] $variable = Connect-HPBIOS -Username "username" -Password "password"[/code]

All of the documentation and examples show using a connection variable with the Get- and Set- cmdlets, so that may be a best practice, but it is entirely possible to perform a connection in a single line if you only need to adjust a single setting.  Connecting takes a bit of time, so using an establish connection will save you a lot of time.

Storing the connection in a variable for reference also allows you the benefit of establishing multiple sessions to different hosts.  This could be useful for setting settings across multiple hosts with a simple For loop in PowerShell.

Disconnecting is just as simple.

[code lang=”PowerShell”]Disconnect-HPBIOS $variable[/code]

Receiving Updates

Like the previous version of HP cmdlets for iLO and Onboard Administrator, HP has packaged an Update-HPBIOSModuleVersion cmdlet that checks the HP website and automatically pulls down the newer versions of HP BIOS cmdlets when they are available.

What do you connect to?

So, it begs the question – when you do a Connect-HPBIOS cmdlet, what are you connecting to?  The answer is the Windows OS.  You are not connecting to the iLO, as I first thought.  So, this means, only targets running the Windows OS are going to be viable to you.  I had hoped that maybe the PowerShell toolkit was talking to iLO and its RESTful API, but this is not the case. Connected to the RESTful API would have meant you could use PowerShell to script against Linux and VMware hosts in addition to Windows hosts, but perhaps this will come in future versions.

Quick References of the BIOS Cmdlets

Cmdlet Description
Connect-HPBIOS Creates connections to one or multiple BIOS targets.
Disconnect-HPBIOS Closes the connection.
Get-HPBIOSACPI_SLIT Gets BIOS ACPI SLIT preferences information.
Get-HPBIOSAdminInfo Gets the reference information for the server administrator.
Get-HPBIOSAdvancedMemoryProtection Gets BIOS advanced memory protection options information.
Get-HPBIOSAdvancedSystemROMOptions Gets BIOS advanced system ROM options.
Get-HPBIOSBootControllerOrder Gets the current Boot Controller Order.
Get-HPBIOSBootMode Gets the current Boot Mode for the systems that support UEFI.
Get-HPBIOSBootOrderPolicy Gets the current Boot Order Policy in UEFI systems.
Get-HPBIOSCustomPostMessage Gets BIOS custom post message.
Get-HPBIOSDataDirectIO Gets BIOS Data Direct I/O information.
Get-HPBIOSEmbeddedNIC Gets BIOS Embedded NIC information.
Get-HPBIOSEmbeddedUEFIShell Gets BIOS embedded UEFI shell information.
Get-HPBIOSEMSConsole Gets the EMS console configuration.
Get-HPBIOSHyperTransport Gets the current HyperTransport Frequency.
Get-HPBIOSIntelNICDMAChannels Gets BIOS Intel DMA Channels information.
Get-HPBIOSIntelPCM Gets BIOS Intel Performance counter monitor information.
Get-HPBIOSIntelTurboBoost Gets BIOS Intel Turbo Boost information.
Get-HPBIOSInterfaceMode Gets the interface mode displayed for ROM-based utilities.
Get-HPBIOSIPLOrder Gets the current Standard Boot Order (IPL) configuration.
Get-HPBIOSMemoryChannel Gets BIOS memory channel mode information.
Get-HPBIOSMemoryPower Gets the current settings of memory related power management.
Get-HPBIOSMemoryProximityReportingForIO Gets BIOS Memory Proximity Reporting for I/O information.
Get-HPBIOSModuleVersion Gets the module details for the HPBIOSCmdlets.
Get-HPBIOSNodeInterleaving Gets BIOS Node Interleaving information.
Get-HPBIOSOneTerabyteMemoryLimit Gets BIOS One Terabyte Memory Limit information.
Get-HPBIOSPCIePower Gets the current PCIe related configuration, which may impact system power usage.
Get-HPBIOSPowerCapping Gets the current status of Memory Power Capping and Dynamic Power Capping Functionality.
Get-HPBIOSPowerProfile Gets the level of power versus performance for the system.
Get-HPBIOSPowerRegulator Gets the current HP Power Regulator.
Get-HPBIOSPrefetcher Gets BIOS HW prefetcher, Adjacent Sector prefetch, DCU prefetcher and DCUIP prefetcher information.
Get-HPBIOSProcessorOptions Gets the current settings of processor options.
Get-HPBIOSProcessorPower Gets the current settings of processor related power management.
Get-HPBIOSQPI Gets BIOS QPI snoop configuration, QPI bandwidth optimization information.
Get-HPBIOSQPILinkPower Gets the current Intel QPI Link Power Management and Frequency.
Get-HPBIOSRedundantPowerSupplyMode Gets the current redundant power supply configuration.
Get-HPBIOSSerialConsole Gets the serial console configuration.
Get-HPBIOSSerialPort Gets the serial port configuration.
Get-HPBIOSServerAvailability Gets BIOS server availability information.
Get-HPBIOSServerInfo Gets the reference information for the server administrator.
Get-HPBIOSServerSecurity Gets BIOS server security information.
Get-HPBIOSServiceContact Gets the reference information for the server service.
Get-HPBIOSUEFIBootOrder Gets the current advanced UEFI boot order list.
Get-HPBIOSUEFIOptimizedBoot Gets the current UEFI Optimized Boot configuration.
Get-HPBIOSUtilityLanguage Gets BIOS system utility language.
Get-HPBIOSVideoOptions Gets BIOS video options information.
Get-HPBIOSVirtualization Gets the hardware virtualization configuration.
New-HPBIOSCustomWinPEImage Creates HP WinPE image.
Set-HPBIOSAdminInfo Sets the reference information for the server administrator.
Set-HPBIOSAdvancedMemoryProtection Sets the BIOS advanced memory protection method.
Set-HPBIOSAdvancedSystemROMOptions Sets BIOS system ROM options.
Set-HPBIOSBootControllerOrder Sets the Boot Controller Order.
Set-HPBIOSBootMode Sets the Boot Mode for the systems that support UEFI.
Set-HPBIOSBootOrderPolicy Sets the Boot Order Policy in UEFI systems.
Set-HPBIOSCustomPostMessage Sets a custom post message.
Set-HPBIOSDataDirectIO Sets BIOS Data Direct I/O.
Set-HPBIOSEmbeddedNIC Sets BIOS NIC setting.
Set-HPBIOSEmbeddedUEFIShell Sets BIOS embedded UEFI shell.
Set-HPBIOSEMSConsole Sets the EMS console configuration.
Set-HPBIOSHyperTransport Sets the HyperTransport Frequency.
Set-HPBIOSIntelNICDMAChannels Sets BIOS Intel DMA Channels.
Set-HPBIOSIntelPCM Sets BIOS Intel Performance Counter Monitor.
Set-HPBIOSIntelTurboBoost Sets Intel Turbo Boost.
Set-HPBIOSInterfaceMode Sets the interface mode displayed for ROM-based utilities.
Set-HPBIOSIPLOrder Sets the Standard Boot Order (IPL).
Set-HPBIOSMemoryChannel Sets BIOS memory channel mode.
Set-HPBIOSMemoryPower Sets the memory related power management.
Set-HPBIOSMemoryProximityReportingForIO Sets BIOS Memory Proximity Reporting for I/O information.
Set-HPBIOSNodeInterleaving Sets BIOS Node Interleaving.
Set-HPBIOSOneTerabyteMemoryLimit Sets BIOS one terabyte memory limit.
Set-HPBIOSPCIePower Sets the current PCIe related configuration, which may impact system power usage.
Set-HPBIOSPowerCapping Sets the status of Memory Power Capping and Dynamic Power Capping Functionality.
Set-HPBIOSPowerProfile Sets the level of power versus performance for the system.
Set-HPBIOSPowerRegulator Sets the HP Power Regulator.
Set-HPBIOSPrefetcher Sets BIOS HW, Adjacent Sector, DCU and DCUIP prefetcher.
Set-HPBIOSProcessorOptions Sets the current processor options settings.
Set-HPBIOSProcessorPower Sets the processor related power management.
Set-HPBIOSQPI Sets BIOS QPI snoop configuration and QPI bandwidth optimization.
Set-HPBIOSQPILinkPower Sets the Intel QPI Link Power Management and Frequency.
Set-HPBIOSRedundantPowerSupplyMode Sets the Redundant Power Supply Mode.
Set-HPBIOSSerialConsole Sets the serial console configuration.
Set-HPBIOSSerialPort Sets the serial port configuration.
Set-HPBIOSServerAvailability Sets BIOS server availability.
Set-HPBIOSServerInfo Sets the reference information for the server administrator.
Set-HPBIOSServerSecurity Sets BIOS server security options.
Set-HPBIOSServiceContact Sets the reference information for the server service.
Set-HPBIOSUEFIOptimizedBoot Sets the UEFI Optimized Boot state.
Set-HPBIOSUtilityLanguage Selects the language for the system.
Set-HPBIOSVideoOptions Sets BIOS video options.
Set-HPBIOSVirtualization Sets the hardware virtualization configuration.
Test-HPBIOSConnection Determines if the connection to the target is still valid.
Update-HPBIOSModuleVersion Determines if an updated version of the BIOS cmdlets is available and returns the link to download this new version.

You may also like