Set-VMFirmware
Sets the firmware configuration of a virtual machine.
Syntax
Set-VMFirmware
[-CimSession <CimSession[]>]
[-ComputerName <String[]>]
[-Credential <PSCredential[]>]
[-VMName] <String[]>
[-BootOrder <VMComponentObject[]>]
[-FirstBootDevice <VMComponentObject>]
[-EnableSecureBoot <OnOffState>]
[-SecureBootTemplate <String>]
[-SecureBootTemplateId <Guid>]
[-PreferredNetworkBootProtocol <IPProtocolPreference>]
[-ConsoleMode <ConsoleModeType>]
[-PauseAfterBootFailure <OnOffState>]
[-Passthru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-VMFirmware
[-VM] <VirtualMachine[]>
[-BootOrder <VMComponentObject[]>]
[-FirstBootDevice <VMComponentObject>]
[-EnableSecureBoot <OnOffState>]
[-SecureBootTemplate <String>]
[-SecureBootTemplateId <Guid>]
[-PreferredNetworkBootProtocol <IPProtocolPreference>]
[-ConsoleMode <ConsoleModeType>]
[-PauseAfterBootFailure <OnOffState>]
[-Passthru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-VMFirmware
[-VMFirmware] <VMFirmware[]>
[-BootOrder <VMComponentObject[]>]
[-FirstBootDevice <VMComponentObject>]
[-EnableSecureBoot <OnOffState>]
[-SecureBootTemplate <String>]
[-SecureBootTemplateId <Guid>]
[-PreferredNetworkBootProtocol <IPProtocolPreference>]
[-ConsoleMode <ConsoleModeType>]
[-PauseAfterBootFailure <OnOffState>]
[-Passthru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
The Set-VMFirmware cmdlet sets the firmware configuration of a Generation 2 virtual machine.
Examples
Example 1
PS C:\> Set-VMFirmware "Test VM" -EnableSecureBoot On
This example enables secure boot functionality on the virtual machine "Test VM".
Example 2
PS C:\> Set-VMFirmware "Test VM" -FirstBootDevice $vmNetworkAdapter
This example sets the virtual machine "Test VM" to boot off of the VM network adapter object stored in $vmNetworkAdapter. This object was acquired using get-VMNetworkAdapter.
Example 3
PS C:\> Set-VMFirmware "Test VM" -BootOrder $vmNetworkAdapter, $vmHardDiskDrive
Sets the boot order for the virtual machine "Test VM". $vmNetworkAdapter contains a VM Network Adapter object (acquired using get-VMNetworkAdapter) and $vmHardDiskDrive contains a VM hard disk object (acquired using get-VMHardDiskDrive). Any existing boot entries not specified by this command will be removed from the virtual machine.
Parameters
-BootOrder
Specifies an array of devices. The boot order determines the order of the devices from which to boot. The acceptable values for this parameter are:
-- VMBootSource
-- VMNetworkAdapter
-- HardDiskDrive
-- DVDDrive
The VMBootSource value describes a boot entry in firmware nonvolatile Random Access Memory (NVRAM).
Type: | VMComponentObject[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CimSession
Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.
Type: | CimSession[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Specifies the names of the Hyper-V hosts whose firmware configuration you want to modify.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ConsoleMode
Specifies the console mode type for the virtual machine. This parameter allows a virtual machine to run without graphical user interface.
Type: | ConsoleModeType |
Accepted values: | Default, COM1, COM2, None |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Specifies one or more user accounts that have permission to perform this action. The default is the current user.
Type: | PSCredential[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-EnableSecureBoot
Specifies whether to enable secure boot. The acceptable values for this parameter are:
-- On
-- Off
Secure boot uses a public key infrastructure that protects the integrity of the operating system.
Type: | OnOffState |
Accepted values: | On, Off |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FirstBootDevice
Specifies the device from which to attempt to boot from first. The acceptable values for this parameter are:
-- VMBootSource
-- VMNetworkAdapter
-- HardDiskDrive
-- DVDDrive
The VMBootSource value describes a boot entry in firmware NVRAM.
Type: | VMComponentObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Passthru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PauseAfterBootFailure
Specifies the behavior of the virtual machine after a start failure. For a value of On, if the virtual machine fails to start correctly from a device, the virtual machine is paused.
Type: | OnOffState |
Accepted values: | On, Off |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PreferredNetworkBootProtocol
Specifies the IP protocol version to use during a network boot.
Type: | IPProtocolPreference |
Accepted values: | IPv4, IPv6 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecureBootTemplate
Specifies the name of the secure boot template. If secure boot is enabled, you must have a valid secure boot template for the guest operating system to start.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecureBootTemplateId
Specifies the ID of the secure boot template.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VM
Specifies the virtual machine objects for which want to modify the firmware configuration. To obtain a virtual machine object, use the Get-VM cmdlet.
Type: | VirtualMachine[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VMFirmware
Specifies an array of virtual machine firmware configurations. The cmdlet sets the firmware configurations you specify.
Type: | VMFirmware[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VMName
Specifies an array of names of virtual machines for which you want to modify the firmware configuration.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Outputs
Microsoft.HyperV.Powershell.VMFirmware
Notes
- Note: This cmdlet is supported only when run against Generation 2 virtual machines.