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