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