Set-VM

Configures a virtual machine.

Syntax

Set-VM
   [-CimSession <CimSession[]>]
   [-ComputerName <String[]>]
   [-Credential <PSCredential[]>]
   [-Name] <String[]>
   [-GuestControlledCacheTypes <Boolean>]
   [-LowMemoryMappedIoSpace <UInt32>]
   [-HighMemoryMappedIoSpace <UInt64>]
   [-ProcessorCount <Int64>]
   [-DynamicMemory]
   [-StaticMemory]
   [-MemoryMinimumBytes <Int64>]
   [-MemoryMaximumBytes <Int64>]
   [-MemoryStartupBytes <Int64>]
   [-AutomaticStartAction <StartAction>]
   [-AutomaticStopAction <StopAction>]
   [-AutomaticStartDelay <Int32>]
   [-AutomaticCriticalErrorAction <CriticalErrorAction>]
   [-AutomaticCriticalErrorActionTimeout <Int32>]
   [-LockOnDisconnect <OnOffState>]
   [-Notes <String>]
   [-NewVMName <String>]
   [-SnapshotFileLocation <String>]
   [-SmartPagingFilePath <String>]
   [-CheckpointType <CheckpointType>]
   [-Passthru]
   [-AllowUnverifiedPaths]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-VM
   [-VM] <VirtualMachine[]>
   [-GuestControlledCacheTypes <Boolean>]
   [-LowMemoryMappedIoSpace <UInt32>]
   [-HighMemoryMappedIoSpace <UInt64>]
   [-ProcessorCount <Int64>]
   [-DynamicMemory]
   [-StaticMemory]
   [-MemoryMinimumBytes <Int64>]
   [-MemoryMaximumBytes <Int64>]
   [-MemoryStartupBytes <Int64>]
   [-AutomaticStartAction <StartAction>]
   [-AutomaticStopAction <StopAction>]
   [-AutomaticStartDelay <Int32>]
   [-AutomaticCriticalErrorAction <CriticalErrorAction>]
   [-AutomaticCriticalErrorActionTimeout <Int32>]
   [-LockOnDisconnect <OnOffState>]
   [-Notes <String>]
   [-NewVMName <String>]
   [-SnapshotFileLocation <String>]
   [-SmartPagingFilePath <String>]
   [-CheckpointType <CheckpointType>]
   [-Passthru]
   [-AllowUnverifiedPaths]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

The Set-VM cmdlet configures a virtual machine.

Examples

Example 1

PS C:\> Set-VM -Name TestVM -AutomaticStopAction Shutdown

Configures virtual machine TestVM to shut down when the Hyper-V host shuts down.

Example 2

PS C:\> Stop-VM -Name TestVM -Passthru | Set-VM -ProcessorCount 2 -DynamicMemory -MemoryMaximumBytes 2GB -Passthru | Start-VM

Stops virtual machine TestVM, sets it to use dynamic memory, sets its maximum amount of memory to 2GB, sets it to use 2 virtual processors, and starts it.

Required Parameters

-Name

Specifies the name of the virtual machine to be configured.

Type: String[]
Aliases: VMName
Position: 0
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False
-VM

Specifies the virtual machine to be configured.

Type: VirtualMachine[]
Position: 0
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

Optional Parameters

-AllowUnverifiedPaths

Specifies that no error is to be thrown if the specified path is not verified as accessible by the cluster. This parameter is applicable to clustered virtual machines.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-AutomaticCriticalErrorAction

Specifies the action to take when the VM encounters a critical error, and exceeds the timeout duration specified by the AutomaticCriticalErrorActionTimeout cmdlet. The acceptable values for this parameter are: Pause and None.

Type: CriticalErrorAction
Parameter Sets: None, Pause
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-AutomaticCriticalErrorActionTimeout

Specifies the amount of time, in minutes, to wait in critical pause before powering off the virtual machine.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-AutomaticStartAction

Specifies the action the virtual machine is to take upon start. Allowed values are Nothing , StartIfRunning , and Start .

Type: StartAction
Parameter Sets: Nothing, StartIfRunning, Start
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-AutomaticStartDelay

Specifies the number of seconds by which the virtual machine's start should be delayed.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-AutomaticStopAction

Specifies the action the virtual machine is to take when the virtual machine host shuts down. Allowed values are TurnOff , Save , and ShutDown .

Type: StopAction
Parameter Sets: TurnOff, Save, ShutDown
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-CheckpointType

Allows you to configure the type of checkpoints created by Hyper-V. The acceptable values for this parameter are:

  • Disabled. Block creation of checkpoints.
  • Standard. Create standard checkpoints.
  • Production. Create production checkpoints if supported by guest operating system. Otherwise, create standard checkpoints.
  • ProductionOnly. Create production checkpoints if supported by guest operating system. Otherwise, the operation fails.
Type: CheckpointType
Parameter Sets: Disabled, Production, ProductionOnly, Standard
Position: Named
Default value: None
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
Accept pipeline input: False
Accept wildcard characters: False
-ComputerName

Specifies one or more Hyper-V hosts on which the virtual machine is to be configured. NetBIOS names, IP addresses, and fully qualified domain names are allowable. The default is the local computer. Use localhost or a dot (.) to specify the local computer explicitly.

Type: String[]
Position: Named
Default value: None
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
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
Accept pipeline input: False
Accept wildcard characters: False
-DynamicMemory

Specifies that the virtual machine is to be configured to use dynamic memory.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-GuestControlledCacheTypes

Specifies whether this virtual machine uses guest controlled cache types.

Type: Boolean
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-HighMemoryMappedIoSpace
Type: UInt64
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-LockOnDisconnect

Specifies whether virtual machine connection in basic mode locks the console after a user disconnects.

Type: OnOffState
Parameter Sets: On, Off
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-LowMemoryMappedIoSpace
Type: UInt32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-MemoryMaximumBytes

Specifies the maximum amount of memory that the virtual machine is to be allocated. (Applies only to virtual machines using dynamic memory.)

Type: Int64
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-MemoryMinimumBytes

Specifies the minimum amount of memory that the virtual machine is to be allocated. (Applies only to virtual machines using dynamic memory.)

Type: Int64
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-MemoryStartupBytes

Specifies the amount of memory that the virtual machine is to be allocated upon startup. (If the virtual machine does not use dynamic memory, then this is the static amount of memory to be allocated.)

Type: Int64
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-NewVMName

Specifies the name to which the virtual machine is to be renamed.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Notes

Specifies notes to be associated with the virtual machine.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Passthru

Specifies that an object is to be passed through to the pipeline representing the virtual machine to be configured.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ProcessorCount

Specifies the number of virtual processors for the virtual machine.

Type: Int64
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-SmartPagingFilePath

Specifies the folder in which the Smart Paging file is to be stored.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-SnapshotFileLocation

Specifies the folder in which the virtual machine is to store its snapshot files.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-StaticMemory

This cmdlet configures the virtual machine to use static memory. Specify the amount of static memory to allocate by using the MemoryStartupBytes parameter.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
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
Accept pipeline input: False
Accept wildcard characters: False

Outputs

None by default; Microsoft.HyperV.PowerShell.VirtualMachine if PassThru is specified.