How automatically snapshot Hyper-V VMs Workflow PS Script


Open your Windows Power Shell ISE as administrator.



1. Create a Folder to store your scripts .


New-Item C:\Scripts  –ItemType Directory


2. Create the following scripts .


  •  First create the Script for Checkpoints (AKA Snapshots) copy the script below. 
  • File name cloud be VMCheclpointdailyjob.ps1


#This script was created to run  daily snapshots  of VMs
Get-VM  SVRVM* | checkpoint-vm -SnapshotName "Daily Snapshot $((Get-Date).toshortdatestring())" –AsJob




  • Second create the Script for Remove VM Snapshots, copy the script below.
  • File name cloud be VMRemoveCheckpoints.ps1

At this point you can change what days you want to delete more days you can change the (Get-Date).AddDays(- #).


#Script to Remove VM Snapshots
Get-VMSnapshot -VMName SVRVM* | Where-Object {$_.CreationTime -lt (Get-Date).AddDays(-5) } | Remove-VMSnapshot



3. Set the Task Scheduler to automate this process

Create two Tasks.



 Result 

If you need more info leave your comment.


Thanks,