Forge Home


Collection of useful Puppet manifests for Windows-based platforms.


73,266 latest version

4.6 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 1.0.6 (latest)
  • 1.0.5
  • 1.0.4
  • 1.0.3
  • 1.0.2
  • 1.0.1
  • 1.0.0
  • 0.9.4
  • 0.9.3
  • 0.9.2
  • 0.9.1
released Aug 13th 2017
This version is compatible with:
  • windows

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'counsyl-windows', '1.0.6'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add counsyl-windows
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install counsyl-windows --version 1.0.6

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



counsyl/windows — version 1.0.6 Aug 13th 2017


This module provides Puppet configurations for common Windows administration.

Windows Classes


Configures automatic logon for the system for the given user. For example:

class { 'windows::autologon':
  user     => 'justin',
  password => 's3kr1t',


Downloads and installs IIS Express 8.


Automatically downloads and installs Java from Oracle. Currently, it uses Java 8 Update 60. Use of this class implies your acceptance of the Oracle Binary Code License Agreement for SE Platform Products.


Downloads and installs the Non-Sucking Service Manager.


Sets the power scheme for the system, for example:

class { 'windows::power_scheme':
  ensure => 'High performance',


Contains an exec resource that will refresh the current environment -- used when modifying system variables and having them be reflected without logging off and/or rebooting. Notify this class after modifying any system enviornment variable.


Configures automatic windows updates, consult its source for more information.

Windows Defined Types


Configures a windows environment variable, for example:

windows::environment { 'PYTHONPATH':
  value => 'C:\my_python_path'


Creates a Windows firewall rule, for a program or a local port. Some examples:

# Allow ICMP ping.
windows::firewall_rule { 'ICMP Ping':
  protocol => 'icmpv4:8,any',

# Allow Python 2.7.
windows::firewall_rule { 'python2.7':
  program => 'C:\Python27\python.exe',


Ensures that the given directory is a part of the Windows %Path%, e.g.:

windows::path { 'C:\Python27': }


Registers a DLL (or other control) specificed by the resource's name as a component in the registry.


Configures a screen saver (specified by the given user name). For example, this configures the blank screen saver for the user justin to engage after 10 minutes, and requiring a password to log back in:

windows::screen_saver { 'justin':
  secure  => true,
  timeout => '10m',


Configures a windows shortcut, for example:

windows::shortcut { 'C:\Users\justin\Desktop\python.lnk':
  target      => 'C:\Python27\python.exe',
  description => 'Python 2.7',


Unzips a file on Windows using Microsoft native APIs. For example:

windows::unzip { 'C:\':
  destination => 'C:\dest',
  creates     => 'C:\dest\uncompressed.txt',

This assumes that the file uncompressed.txt exists in C:\


Apache License, Version 2.0


Justin Bronn


Please log tickets and issues at