Forge Home

powershell7

Puppet Module to manage Powershell 7

2,202 downloads

912 latest version

5.0 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

  • 0.4.0 (latest)
  • 0.3.0
  • 0.2.0
  • 0.1.0
released Oct 19th 2021
This version is compatible with:
  • Puppet Enterprise 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x
  • Puppet >= 6.0.0 < 8.0.0
  • ,

Start using this module

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

Add this module to your Puppetfile:

mod 'n3snah-powershell7', '0.4.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add n3snah-powershell7
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install n3snah-powershell7 --version 0.4.0

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.

Download

Documentation

n3snah/powershell7 — version 0.4.0 Oct 19th 2021

powershell7

Build Status Coverage Status

This module has been developed to manage the installation of PowerShell 7.

Table of Contents

  1. Description
  2. Setup - The basics of getting started with powershell7
  3. Usage - Configuration options and additional functionality
  4. Limitations - OS compatibility, etc.
  5. Development - Guide for contributing to the module

Description

PowerShell 7 is the latest major update which builds on PowerShell 6 core. This version of PowerShell brings many new features, cmdlets and includes a number of bugfixes.

Setup

Software Prerequisites

On Ubuntu, this module assumes that you have the following sofware is either already installed or in a manifest to install as this will attempt to download files from HTTPS:

  1. apt-transport-https
  2. software-properties-common

Please refer to the metadata.json file for a list of required modules and their supported versions.

Beginning with powershell7

include powershell7 is enough to get started and have PowerShell 7 installed on your Windows or Linux system.

Usage

All parameters for this module are contained in the powershell7 class. If you would like to alter installation settings such as context menu options please see below.

Install and Enable PowerShell 7

include powershell7

Disable Context Menu Options

class { 'powershell7':
  'add_explorer_context_menu_openpowershell' => 0,
  'add_file_context_menu_runpowershell'      => 0,
}

Disable PS Remoting

class { 'powershell7':
  'enable_psremoting' => 0,
}

Change Update Notification Settings

PowerShell 7 added a new feature to alert users when a newer version of the PowerShell application is available. This can be configured to Off, Default or LTS. The notification doesn't provide any capabilities to update PowerShell but just to notify only.

class { 'powershell7':
  'powershell_updatecheck' => 'LTS',
}

This won't affect Linux installs at this time.

Configuring PowerShell Window Settings

Default PowerShell 7 window behaviour can now be customized which includes changing the size of the window along with also changing the buffer size and even the background/foreground color. With PowerShell, the buffer width must be equal to the same size as the window width so there is no option available to change this setting and will always be set to the same size.

class { 'powershell7':
  'config_window_width'    => 400,
  'config_window_height'   => 60,
  'config_buffer_height'   => 7000,
  'config_background_color => 'Blue',
  'config_foreground_color => 'White',
}

PowerShell Window Colors

PowerShell 7 only allows certain colors for the background and the foreground. This is the list of acceptable colors.

  • Black
  • DarkBlue
  • DarkGreen
  • DarkCyan
  • DarkRed
  • DarkMagenta
  • DarkYellow
  • Gray
  • Blue
  • Green
  • Cyan
  • Red
  • Magenta
  • Yellow
  • White

PowerShell release types

There are 3 versions of powershell which can be installed onto any system.

  1. lts - Long Term Support which is aimed at consumers who which to have very stable and long supported releases
  2. preview - which is aimed at the more bleeding-edge type releases. Not usually ideal for enterprises.
  3. stable - releases where they bring in new features more often than LTS but deemed more stable than preview.
class { 'powershell7':
  'release_type => 'lts'
}

Limitations

Currently if you have PowerShell installed on Ubuntu and you decide to change the release type. Puppet is unable to uninstall the current package and install the new package. If you run a apt-remove <packagename> puppets next run should succeed. A future task will be made available to handle this.

Due to using the Stdlib::Absolutepath and the way that the code is structured. You cannot have download_dir set to C:\. This would cause the path to end up something like C:\\file.msi which wouldn't be a valid windows path.

Development

If you would like to contribute to this module. Fork me on github, make your desired changes and create a Pull request back to n3snah/powershell7