Remove-VMSnapshot

Remove-VMSnapshot

Deletes a virtual machine snapshot.

Syntax

Parameter Set: SnapshotName
Remove-VMSnapshot [-VMName] <String[]> [[-Name] <String[]> ] [-AsJob] [-ComputerName <String[]> ] [-IncludeAllChildSnapshots] [-Passthru] [ <CommonParameters>]

Parameter Set: SnapshotObject
Remove-VMSnapshot [-VMSnapshot] <VMSnapshot[]> [-AsJob] [-IncludeAllChildSnapshots] [-Passthru] [ <CommonParameters>]

Parameter Set: VMObject
Remove-VMSnapshot [-VM] <VirtualMachine[]> [[-Name] <String[]> ] [-AsJob] [-IncludeAllChildSnapshots] [-Passthru] [ <CommonParameters>]

Detailed Description

The Remove-VMSnapshot deletes a virtual machine snapshot.

Parameters

-AsJob

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

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-ComputerName<String[]>

Specifies one or more Hyper-V hosts on which a snapshot is to be deleted. 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.

Aliases

none

Required?

false

Position?

named

Default Value

.

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-IncludeAllChildSnapshots

Specifies that the snapshot’s children are to be deleted along with the snapshot.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Name<String[]>

Specifies the name of the snapshot to be deleted.

Aliases

none

Required?

false

Position?

2

Default Value

none

Accept Pipeline Input?

true (ByValue)

Accept Wildcard Characters?

true

-Passthru

Specifies that an object is to be passed through to the pipeline representing the snapshot to be deleted.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-VM<VirtualMachine[]>

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

Aliases

none

Required?

true

Position?

1

Default Value

none

Accept Pipeline Input?

true (ByValue)

Accept Wildcard Characters?

false

-VMName<String[]>

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

Aliases

none

Required?

true

Position?

1

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

true

-VMSnapshot<VMSnapshot[]>

Specifies the snapshot to be deleted.

Aliases

none

Required?

true

Position?

1

Default Value

none

Accept Pipeline Input?

true (ByValue)

Accept Wildcard Characters?

false

<CommonParameters>

This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see    about_CommonParameters (https://go.microsoft.com/fwlink/p/?LinkID=113216).

Inputs

The input type is the type of the objects that you can pipe to the cmdlet.

Outputs

The output type is the type of the objects that the cmdlet emits.

  • None by default; Microsoft.Virtualization.Powershell.VirtualMachine if –PassThru is specified.

Examples

Example 1

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

PS C:\> Get-VM TestVM | Remove-VMSnapshot –Name Experiment*

Example 2

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

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