Remove-VMSnapshot

Deletes a virtual machine checkpoint.

Syntax

Remove-VMSnapshot
      [-VMName] <String[]>
      [-CimSession <CimSession[]>]
      [-ComputerName <String[]>]
      [-Credential <PSCredential[]>]
      [[-Name] <String[]>]
      [-IncludeAllChildSnapshots]
      [-AsJob]
      [-Passthru]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-VMSnapshot
      [-VM] <VirtualMachine[]>
      [[-Name] <String[]>]
      [-IncludeAllChildSnapshots]
      [-AsJob]
      [-Passthru]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-VMSnapshot
      [-VMSnapshot] <VMSnapshot[]>
      [-IncludeAllChildSnapshots]
      [-AsJob]
      [-Passthru]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

The Remove-VMSnapshot cmdlet deletes 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:\> Get-VM TestVM | Remove-VMSnapshot -Name Experiment*

Deletes all checkpoints of virtual machine TestVM whose names starts with Experiment.

Example 2

PS C:\> Get-VMSnapshot -VMName TestVM | Where-Object {$_.CreationTime -lt (Get-Date).AddDays(-90) } | Remove-VMSnapshot

Deletes all checkpoints of virtual machine TestVM older than 90 days.

Parameters

-AsJob

Runs the cmdlet as a background job.

Type:SwitchParameter
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 one or more Hyper-V hosts on which this cmdlet deletes a checkpoint. 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
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

-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

-IncludeAllChildSnapshots

Specifies that the checkpoint's children are to be deleted along with the checkpoint.

Type:SwitchParameter
Aliases:IncludeAllChildCheckpoints
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Specifies the name of the checkpoint to be deleted.

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Passthru

Indicates that this cmdlet returns a Microsoft.HyperV.PowerShell.VirtualMachine object that represents the checkpoint that it deletes.

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

-VM

Specifies the virtual machine of which the checkpoint is to be deleted.

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

-VMName

Specifies the name of the virtual machine of which the checkpoint is to be deleted.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-VMSnapshot

Specifies the checkpoint to be deleted.

Type:VMSnapshot[]
Aliases:VMCheckpoint
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

None

Default

Microsoft.HyperV.PowerShell.VirtualMachine

If -PassThru is specified.