Set-VMFirmware
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.
Required Parameters
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 |
Accept pipeline input: | True (ByValue) |
Accept wildcard characters: | False |
Specifies an array of virtual machine firmware configurations. The cmdlet sets the firmware configurations you specify.
Type: | VMFirmware[] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True (ByValue) |
Accept wildcard characters: | False |
Specifies an array of names of virtual machines for which you want to modify the firmware configuration.
Type: | String[] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True (ByValue) |
Accept wildcard characters: | False |
Optional Parameters
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 |
Accept pipeline input: | False |
Accept wildcard characters: | False |
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 |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the names of the Hyper-V hosts whose firmware configuration you want to modify.
Type: | String[] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the console mode type for the virtual machine. This parameter allows a virtual machine to run without graphical user interface.
Type: | ConsoleModeType |
Parameter Sets: | Default, COM1, COM2, None |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
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 |
Accept pipeline input: | False |
Accept wildcard characters: | False |
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 |
Parameter Sets: | On, Off |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
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 |
Accept pipeline input: | False |
Accept wildcard characters: | False |
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 |
Accept pipeline input: | False |
Accept wildcard characters: | False |
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 |
Parameter Sets: | On, Off |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the IP protocol version to use during a network boot.
Type: | IPProtocolPreference |
Parameter Sets: | IPv4, IPv6 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
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 |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the ID of the secure boot template.
Type: | Guid |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | 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.