Restore-VMSnapshot

Restores a virtual machine checkpoint.

Syntax

Restore-VMSnapshot
       [-ComputerName <String[]>]
       -Name <String>
       [-VMName] <String>
       [-AsJob]
       [-Passthru]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-VMSnapshot
       [-VMSnapshot] <VMSnapshot[]>
       [-AsJob]
       [-Passthru]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-VMSnapshot
       [-VM] <VirtualMachine>
       -Name <String>
       [-AsJob]
       [-Passthru]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Description

The Restore-VMSnapshot cmdlet restores a virtual machine checkpoint.

Note: In Windows Server 2012 R2, virtual machine snapshots were renamed to virtual machine checkpoints. For clarity, this document will refer to virtual machine snapshots as checkpoints.

Examples

Example 1

PS C:\>Restore-VMSnapshot -Name 'Base image' -VMName TestVM
Confirm
Are you sure you want to perform this action?
Restore-VMSnapshot will restore checkpoint "Base image".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"): Y

Restores checkpoint Base image of virtual machine TestVM.

Example 2

PS C:\>Get-VM | Foreach-Object { $_ | Get-VMSnapshot | Sort CreationTime | Select -Last 1 | Restore-VMSnapshot -Confirm:$false }

Applies the most recent checkpoint on all virtual machines with no confirmation prompts.

Required Parameters

-Name

Specifies the name of the checkpoint to be restored.

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

Specifies the virtual machine to be restored.

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

Specifies the name of the virtual machine to be restored.

Type:String
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-VMSnapshot

Specifies an array of VMSnapshot objects. To obtain a VMSnapshot object, use the Get-VMSnapshot cmdlet. The cmdlet restores the virtual machine checkpoints that you specify.

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

Optional Parameters

-AsJob

Specified that the cmdlet is to be run as a background job.

Type:SwitchParameter
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 checkpoint is to be restored. 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:.
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
-Passthru

Specifies that a VMSnapshot is to be passed through to the pipeline representing the checkpoint to be restored.

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; VMSnapshot if -PassThru is specified.