500+ PowerShell scripts (.ps1) for every system!
Go to file
2020-12-14 08:58:07 +00:00
Context_Menus Added folder Context_Menus/ 2020-12-08 13:00:56 +00:00
Scripts Updated train-dns-cache.ps1 2020-12-14 08:58:07 +00:00
LICENSE Initial commit 2020-04-30 17:49:27 +02:00
README.md Added simulate-typewriter.ps1 2020-12-14 07:57:01 +00:00

Collection of Useful PowerShell Scripts (CUPS)

This repository contains 40+ useful cross-platform PowerShell scripts - to be used on the command-line (CLI), for remote control, by context menu, by voice control, or by automation software (e.g. Jenkins).

List of Scripts

The following PowerShell scripts can be found in the Scripts/ subfolder:

What is PowerShell?

PowerShell is a task automation and configuration management framework from Microsoft, consisting of a command-line shell and associated scripting language.

How to get PowerShell?

  • Windows 7 and newer do provide PowerShell by default. It's recommended to install Windows Terminal (see the Microsoft Store at https://www.aka.ms/terminal) for a comfortable command-line usage. Per default, Windows does not allow script execution (execution policy "restricted"). To enable this, enter as administrator:
    $ Set-ExecutionPolicy RemoteSigned
    
  • On CentOS, Debian, Docker, Fedora, macOS, openSUSE, Red Hat, Ubuntu visit https://github.com/PowerShell/PowerShell for installation.

Afterward, install CUPS by clicking on the green "Code" button or execute:

$ git clone https://github.com/fleschutz/PowerShell

Configure PowerShell as Default Shell

  • Linux: make sure PowerShell is installed, then execute: chsh -s /snap/bin/powershell <username>
  • Windows: no need to, PowerShell is the default shell

Adding the Scripts to the Search Path

Want to use the PowerShell scripts everywhere on the command-line? Then you need to add the Scripts/ subfolder to the search path:

  • Bash or sh: edit .profile in your home directory and add the line: PATH="$PATH:/path/to/PowerShell/Scripts"
  • Windows: open the environment variables dialogue and add the full path to Scripts/ to the system environment variable "Path"

Using PowerShell in Context Menus

  • to enable "right-click > New > Windows PowerShell Script" execute Add_ps1_to_New_context_menu.reg in subfolder Context_Menus/
  • to disable this execute Remove_ps1_from_New_context_menu.reg in subfolder Context_Menus/

Script Conventions

Each PowerShell script should follow the 7 golden rules:

  • Rule 1: the filename should be named <verb>-<object>.ps1
  • Rule 2: to support PowerShell on Linux the first line reads: #!/snap/bin/powershell
  • Rule 3: to support PowerShell on Linux the script has execute file permissions (chmod a+rx )
  • Rule 4: add a metadata header containing the syntax, description, author, source, and license
  • Rule 5: prefer command-line options, but may ask the user in case no option is given
  • Rule 6: the encoding of the script is in UTF-8 with BOM to support Unicode characters
  • Rule 7: exit 0 for success, else print an error message and exit with the error code (mostly 1)

Feedback

Send your email feedback to: markus [at] fleschutz [dot] de

This open source release is licensed under the CC0 license. All trademarks are the property of their respective owners.