Q: How can I use PowerShell to view the BIOS/firmware configuration of my Hyper-V virtual machines?

A: Hyper-V 2012 R2 supports two types of virtual machine:

  • Generation 1: BIOS based
  • Generation 2: UEFI based

To view the BIOS configuration of a Generation 1 virtual machine, use the Get-VMBios <VM> cmdlet (and use Set-VMBios to configure settings). This command's output is shown below:

                              PS C:\> Get-VMBIOS Gen1VM | fl                              ComputerName   : SAVDALHV20                              NumLockEnabled : False                              StartupOrder   : {CD, IDE, LegacyNetworkAdapter, Floppy}                              VMId           : c418cc87-4db2-4a38-ae5c-9ebd075fdf04                              VMName         : Gen1VM                              VMSnapshotId   : 00000000-0000-0000-0000-000000000000                              VMSnapshotName :                               Key            :                               IsDeleted      : False

To view the firmware configuration of a Generation 2 virtual machine, use the Get-VMFirmware <VM> cmdlet (and use Set-VMFirmware to configure settings). This command's output is shown below:

                              PS C:\> Get-VMFirmware Gen2VM | fl                              ComputerName                 : SAVDALHV20                              SecureBoot                   : On                              PreferredNetworkBootProtocol : IPv4                              BootOrder                    : {File, Drive, Drive, Network}                              VMId                         : 514dc058-e4b3-4c91-9c5c-824930895035                              VMName                       : Gen2VM                              VMSnapshotId                 : 00000000-0000-0000-0000-000000000000                              VMSnapshotName               :                               Key                          :                               IsDeleted                    : False