This module controls VSS on windows systems

Mike Murray



4,381 latest version

4.6 quality score

Version information

  • 0.2.1 (latest)
  • 0.2.0
  • 0.1.0
released Oct 12th 2018
This version is compatible with:
  • Puppet Enterprise 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >= 4.7.0 < 6.0.0
  • windows

Start using this module


mikemurray86/vss — version 0.2.1 Oct 12th 2018


Table of Contents

  1. Description
  2. Setup - The basics of getting started with vss
  3. Usage - Configuration options and additional functionality
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module


This module adds a provider to manage Volume Shadow Copy Service (VSS) configuration on windows.


Beginning with vss

This module can reserver drive space on a specified drive and create scheduled tasks to take regular snapshots similar to what the vssadmin.exe tool would create if run from the command line.

a basic example of configuring snapshots on the D drive for snapshots every hour starting at 8am would look like this:

vss { 'D':
  ensure => 'present',
vss::schedule { 'D':
  ensure     => 'present',
  run_schedule   => 'daily',
  start_time => '08:00',

The example above reserves 10% of the D:\ drive for VSS storage and sets up scheduled tasks to take a new snapshot every 60 minutes.


A more complete example of creating VSS schedules including managing allocated space and assigned drives would look like this:

vss { 'D':
  ensure         => 'present',
  storage_volume => 'D',
  storage_space  => 5,
vss::schedule { 'C':
  ensure       => present,
  run_schedule => 'daily',
  start_time   => '00:00',
  start_date   => '2018-01-01',
  minutes_interval => 45,
  minutes_duration => 5,


the vss::schedule resource is a direct implementation of the builtin scheduled_task trigger attribute so anything that can be set for a trigger can also be set for a schedule here.


vss provider

Properties and Parameters

creates vss schedules and storage.


accepts either present or absent. this decides if space should be allocated for VSS or not.


the name of the drive that you wish to backup. This is also the namevar


this is the UUID of the drive being backed up. It cannot be changed.


the drive where the VSS storage will be alocated. By default this is the same drive as the name parameter but it can be set to somewhere else:

vss { 'D':
  ensure         => 'present',
  storage_volume => 'E',


The UUID of the storage_volume. This cannot be changed.


The amount of a drive to reserve for VSS storage is interpreted as a percent of the total drive by default but explicit sizes are accepted as well.

vss { 'D':
  ensure         => 'present',
  storage_volume => 'D',
  storage_space  => 5,

would allocate 5% of the D:\ drive for storage.


The vss::schedule defined type acts as a wrapper for the built-in scheduled_task resource. Any setting that would be used with the trigger attribute can be used with vss::schedule. The only limitation to this is that only one trigger can be defined at a time per drive.


at this time only one schedule per drive can be defined.


Any and all changes are welcome! please open a pull request and include unit tests for relevant changes.