Microsoft Releases a Native PowerShell Module for ReFS Snapshots
Microsoft has just announced the release of a new PowerShell module dedicated to managing ReFS snapshots. If you already use the ReFS file system, this new module could help you every day by automating snapshot management directly in your scripts.
From the refsutil utility to native PowerShell cmdlets
Historically, ReFS snapshot management has been handled from the command line with refsutil streamsnapshot. This makes it possible to manage data stream snapshots directly at the file system level, whether for backup or archiving purposes. However, refsutil was designed as a low-level utility, and is therefore not suitable by default for integration into PowerShell scripts.
On April 30, 2026, Christina Curlette from Microsoft published a new post announcing the release of a new PowerShell module: ReFSSnapshots. It brings the capabilities of the refsutil tool to PowerShell cmdlets. Thanks to this module, administrators benefit from native pipeline support, parameter validation, and structured error handling.
The ReFSSnapshots module includes all the commands and parameters needed to perform a variety of tasks, including:
- Create point-in-time snapshots of files or streams.
- List existing snapshots.
- Compare a snapshot with the current state of a file.
- Restore files from a previous snapshot state.
- Export snapshots to standalone files on any volume.
- Delete snapshots.
- Apply retention policies to automatically clean up the oldest snapshots.
For example, you can create a snapshot just before applying a patch or a server configuration change. This can be particularly useful for application databases. This kind of integration should make even more sense in the future when using the ReFS file system for the Windows partition becomes truly possible on a stable release.
How do you use the ReFSSnapshots module?
The ReFSSnapshots PowerShell module is available on GitHub and on the PowerShell Gallery. It is also interesting to note that it was developed with the participation of Claude AI, which is listed among the contributors.
Here are the requirements you need to meet:
- Windows Server 2019 (or later) or Windows 10 (or later).
- A volume formatted with ReFS (version 3.7 or later).
- PowerShell 5.1 or newer (including PowerShell Core).
You can install it with this command:
Install-Module -Name ReFSSnapshotsThen, you can create a snapshot like this:
New-RefsSnapshot -Path <Chemin du fichier> -Name <Nom du snapshot>
New-RefsSnapshot -Path D:\Data\database.dat -Name "PreChange_$(Get-Date -Format 'yyyyMMdd_HHmm')"You can then compare the current state with a snapshot by specifying the name of the snapshot in question. For example:
Compare-RefsSnapshot -Path D:\Data\database.dat -Name "<Nom du snapshot>"Other commands are available, including Get-RefsSnapshot to list snapshots, or Restore-RefsSnapshot to restore a ReFS snapshot. Microsoft explains that during a restore, the file is fully loaded into memory, so this can take a long time with large files. In addition, you must stop the service using the target file, because it cannot be restored if it is locked by a process.
What do you think?

