How to Configure Hyper-V Checkpoint Types and Automatic Checkpoints in Windows 11 Using PowerShell

Hyper-V in Windows 11 offers virtual machine checkpoints (formerly known as snapshots) that capture the state, data, and hardware configuration of a guest at a specific point in time. However, default Hyper-V configurations automatically create checkpoints every time a virtual machine starts—a feature called Automatic Checkpoints. Over time, automatic checkpoints silently generate deep chains of dynamically expanding differencing disks (.avhdx), degrading disk I/O performance and rapidly consuming host physical storage. Furthermore, Hyper-V supports two fundamentally different snapshot architectures: Production Checkpoints and Standard Checkpoints. Using Windows PowerShell, systems engineers can select appropriate checkpoint engines, disable unwanted automatic checkpoints, and manage differencing disk mergers with precision.

Production Checkpoints vs Standard Checkpoints Architecture

Hyper-V provides two distinct checkpoint technologies designed for different operational requirements:

  • Production Checkpoints (Default): Employs Volume Shadow Copy Service (VSS) inside Windows guests or file system freezing (fsfreeze) inside Linux guests. It creates an application-consistent data snapshot without saving active volatile RAM state. When restored, the guest starts up as though recovering from a clean restart, ensuring database integrity in SQL Server, Exchange, or active transaction logs.
  • Standard Checkpoints: Captures the complete operational execution state, including CPU registers and RAM buffers. When restored, the guest resumes running instantly at the exact microsecond of snapshot creation. While convenient for rapid software debugging, restoring standard checkpoints can cause Active Directory replication USN rollbacks and transactional corruption in distributed databases.
  • Disabled: Completely prohibits checkpoint creation on the virtual machine, preventing accidental differential disk bloat.

Auditing Active VM Checkpoint Configurations in PowerShell

To inspect the checkpoint architecture and automatic checkpoint status of all virtual machines, open Windows PowerShell as an Administrator and query Get-VM:

# Query checkpoint settings across all hosted VMs
Get-VM | Select-Object Name, CheckpointType, AutomaticCheckpointsEnabled, SnapshotFileLocation

To inspect active checkpoint chains and differencing disk hierarchies for a specific virtual machine:

Get-VMSnapshot -VMName "Win11-TestLab" | Select-Object Name, SnapshotType, CreationTime, ParentSnapshotName

Disabling Automatic Checkpoints via PowerShell

Automatic Checkpoints create a new differencing snapshot on every VM boot cycle, leading to fragmented .avhdx disk files that complicate backup solutions. To disable automatic checkpoints on a specific virtual machine:

Set-VM -VMName "Win11-TestLab" -AutomaticCheckpointsEnabled $false

To disable automatic checkpoints globally across all existing virtual machines on your Windows 11 host:

Get-VM | Set-VM -AutomaticCheckpointsEnabled $false

To verify that automatic checkpoints are disabled:

Get-VM | Select-Object Name, AutomaticCheckpointsEnabled

Configuring Checkpoint Type: Production vs Standard

Depending on whether you are running production database workloads or conducting ephemeral code debugging, use the -CheckpointType parameter to set the appropriate engine.

To enforce Production Checkpoints with fallback enabled (if VSS fails, Hyper-V creates a Standard Checkpoint):

Set-VM -VMName "Win11-TestLab" -CheckpointType Production

To enforce strict Production Checkpoints with fallback disabled (if the guest VSS daemon fails, checkpoint creation aborts rather than risking database corruption):

Set-VM -VMName "Win11-TestLab" -CheckpointType ProductionOnly

To configure Standard Checkpoints for rapid development environments where saving live execution memory is essential:

Set-VM -VMName "Win11-TestLab" -CheckpointType Standard

To disable checkpointing entirely for high-throughput I/O machines where disk differencing overhead must be strictly avoided:

Set-VM -VMName "Win11-TestLab" -CheckpointType Disabled

Creating and Restoring Checkpoints via PowerShell

To manually capture a checkpoint with a descriptive name before executing system updates or experimental code:

# Create a manual checkpoint
Checkpoint-VM -VMName "Win11-TestLab" -SnapshotName "Pre-Update-Baseline"

To restore a virtual machine back to a previous checkpoint:

Restore-VMSnapshot -VMName "Win11-TestLab" -Name "Pre-Update-Baseline" -Confirm:$false

Merging Differencing Disks and Cleaning Up Snapshots

Deleting a checkpoint merges the differencing disk (.avhdx) back into the parent virtual hard disk (.vhdx). In Hyper-V, this merge operation occurs dynamically in the background while the virtual machine continues running.

To remove a specific checkpoint and merge disk differentials:

Remove-VMSnapshot -VMName "Win11-TestLab" -Name "Pre-Update-Baseline"

To purge all existing checkpoints for a virtual machine and collapse the entire snapshot tree into the base virtual disk:

Get-VM -Name "Win11-TestLab" | Get-VMSnapshot | Remove-VMSnapshot

To verify that the merge completed and that only the clean base disk file remains attached:

(Get-VM -Name "Win11-TestLab").HardDrives.Path

Properly managing checkpoint types and disabling automatic checkpoint generation in Windows 11 prevents storage exhaustion, optimises disk performance, and ensures application integrity across virtualised systems.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.