Files
Zack Meier 1d304511b8 update
2026-04-15 15:45:50 -05:00

61 lines
1.5 KiB
PowerShell

<#
.SYNOPSIS
A short one-line action-based description, e.g. 'Tests if a function is valid'
.DESCRIPTION
Create a new snapshot of a VMware Virtual Machine
.NOTES
Create a new snapshot of a VMware Virtual Machine
.LINK
Specify a URI to a help page, this will show when Get-Help -Online is used.
.EXAMPLE
New-ITDVMwareVMSnapshot -VMName itdwinautot1.nd.gov -Name "Before Upgrade to 7.0U3k" -Description "Before Upgrade, delete after 3/3/2023"
#>
function New-ITDVMwareVMSnapshotV3 {
[CmdletBinding()]
param (
[Parameter(Mandatory = $true)]
[string[]]
$VMName,
[Parameter(Mandatory = $true)]
[string]
$Name,
[string]
$Description,
[switch]
$Memory
)
begin {
}
process {
ForEach ($VName in $VMName) {
$VM = Get-VM -Name $VName | Where-Object { $_.ExtensionData.summary.config.ManagedBy.Type -ne "placeholderVm" }
$NewSnapshotParams = @{
Name = $Name;
RunAsync = $true;
}
switch ($PSBoundParameters.Keys) {
Description {
$NewSnapshotParams.Description = $Description
}
Memory {
$NewSnapshotParams.Memory = $Memory;
$NewSnapshotParams.RunAsync = $false;
}
}
$NewSnapshotParams
$VM | New-Snapshot @NewSnapshotParams
}
}
end {
}
}