Awesome PowerShell
A curated list of delightful PowerShell packages and resources.
PowerShell is a cross-platform (Windows, Linux, and macOS) automation and configuration tool that is optimized for dealing with structured data (e.g. JSON, CSV, XML, etc.), REST APIs, and object models.
It includes a command-line shell and an associated scripting language.
Contents
API Wrapper
-
HipChatAdmin - A module for simple integration with Atlassian HipChat via the HipChat API.
-
PSGitHub - Module contains commands to manage GitHub through its REST API.
-
Posh-GitHub - Cmdlets that expose the GitHub API.
-
Posh-Gist - Cmdlets for interacting with GitHub Gist.
-
PSGist - A module to work with GitHub Gists.
-
PSAppVeyor - A module to interact with the AppVeyor REST API.
-
PSSlack - Module for simple Slack integration.
-
ConfluencePS - A module for interacting with Atlassian’s Confluence in powershell (by using the API).
-
JiraPS - A module for interacting with Atlassian’s Jira in powershell (by using the API).
-
PSTelegramAPI - Module for Telegram APIs
-
PSTeams - A module for sending formatted messages to a Microsoft Teams Channel.
-
PSURLScanio - A module for urlscan.io that is a service to scan and analyze websites.
Blogs
Books
-
Exploring PowerShell Automation - a free eBook sampler that gives you an overview of how to administer your environment.
-
PowerShell in Depth - The go-to reference for administrators. Every major shell technique, technology, and tactic is explained and demonstrated, providing a comprehensive reference to almost everything an admin would do in the shell.
-
Windows PowerShell in Action, Third Edition - The latest revision of the comprehensive reference guide.
-
Learn Windows PowerShell in a Month of Lunches, Third Edition - An innovative tutorial designed for busy IT professionals. Just set aside one hour a day - lunchtime would be perfect - for a month, and you’ll be automating Windows tasks faster than you ever thought possible.
-
Learn PowerShell in a Month of Lunches, Linux and macOS Edition - A task-focused tutorial for administering Linux and macOS systems using Microsoft PowerShell.
-
Learn PowerShell Scripting in a Month of Lunches - A guide to the process of developing, testing, and deploying scripts, and the art of toolmaking.
-
The Monad Manifesto, Annotated - Jeffrey Snover - Design and theory behind the language from its creator.
-
Windows PowerShell Networking Guide - Language specific guide to Windows networking.
-
Why PowerShell? - Warren Frame & Don Jones - Use cases for the language.
-
The Big Book of PowerShell Gotchas - Don Jones - Excellent guide to avoiding common pitfalls.
-
The Big Book of PowerShell Error Handling - Dave Wyatt - Great reference for error handling techniques.
-
Secrets of PowerShell Remoting - On all things remoting. Workflow, fan-out, etc.
-
PowerShell Notes for Professionals - Compilation of notes and snippets.
-
PowerShell for SysAdmins: Workflow Automation Made Easy - Learn how to manage and automate your desktop and server environments.
-
Practical Automation with PowerShell - Learn how to build, organize, and share useful automations with PowerShell.
-
Learn dbatools in a Month of Lunches - Learn how to automate SQL Server with PowerShell and the awesome dbatools module.
-
Tiny PowerShell Projects - A hands-on tutorial for system administration with PowerShell.
-
psake - Build automation tool inspired by rake (aka make in Ruby) and bake (aka make in Boo).
-
Invoke-Build - Build and test automation tool inspired by psake.
-
PSDeploy - Module built for the purpose of simplifying multiple types of deployments.
-
BuildHelpers - Variety of helper functions for CI/CD scenarios.
-
YDeliver - Build and deployment framework aimed at .NET projects.
Code and Package Repositories
-
GitHub - Looking for an Open Source PowerShell project? It’s probably here.
-
PowerShell Gallery - Official PowerShell package repository, used by PowerShellGet.
-
PowerShell Test Gallery - A test version of the PowerShell Gallery. Useful when developing new modules.
Commandline Productivity
-
Dotenv - Provides directory specific environments through .env files, similar to direnv.
-
posh-git - Set of PowerShell scripts which provide Git/PowerShell integration.
-
PSReadLine - Bash inspired readline implementation for PowerShell. Keeps history between sessions, adds reverse-history search and makes the commandline experience much better overall.
-
TabExpansionPlusPlus - PowerShell module to make customizing tab completion easier and add a library of custom argument completers.
-
Jump-Location - PowerShell
cd
that reads your mind. Autojump implementation for PowerShell. UNMAINTAINED
-
Zlocation * z.sh implementation for PowerShell. Similar to Jump-Location.
-
thefuck - Magnificent app which corrects your previous console command (by typing
fuck
).
-
PSFzf - a PowerShell module that wraps fzf , a fuzzy file finder for the command line.
-
pslinq - LINQ (LINQ2Objects) for PowerShell.
-
posh-with - Command prefixing for continuous workflow using a single tool.
-
poco* peco implementation. Interactive filtering tool.
-
PSDirTag - DirTags are relative paths that appear as variables in the PowerShell prompt that update as you navigate. Saves keystrokes when navigating folder structures.
-
PSUtil - Designed to make the user’s console life more convenient. It includes shortcuts, aliases, key bindings and convenience functions geared towards greater efficiency and less typing.
-
Microsoft.PowerShell.UnixCompleters - Get parameter completion for native Unix utilities. Requires zsh or bash.
-
PSDepend - PowerShell Dependency Handler
-
PSScriptTools - A set of of PowerShell functions you might use to enhance your own functions and scripts or to facilitate working in the console.
-
zoxide - A better way to navigate your filesystem. Written in Rust, cross-shell, and much faster than other autojumpers.
Communities
Data
-
hjson-powershell - Simple powershell module for conversion between HJSON and JSON.
-
ImportExcel - Module to import/export Excel spreadsheets, without Excel.
-
powershell-yaml - PowerShell CmdLets for YAML format manipulation.
-
PSWriteHTML - PSWriteHTML is a PowerShell module allowing you to create HTML easily.
-
PSWritePDF - Module to create, edit, split, merge PDF files on Windows / Linux and MacOS.
-
PSWriteWord - Module to create Microsoft Word documents without Microsoft Word installed.
Documentation Helper
-
platyPS - Write PowerShell External Help in Markdown.
-
Invoke-CreateModuleHelpFile - PowerShell function to create a HTML help file for a module and all it’s commands.
-
PScribo - PowerShell documentation framework what can create HTML, Word, text files based on PowerShell-based DSL (domain specific language).
Editors and IDEs
Frameworks
-
Carbon - DevOps for automating the configuration of Windows computers.
-
PowerShell PowerUp - Powerful server management framework.
-
PSCX - PowerShell Community Extensions - Useful set of additional cmdlets.
-
PSFramework - Easily add configurations, logging and more to your own PowerShell module.
-
Kansa - Incident response framework.
Interactive Learning
-
PSKoans - A simple, fun, and interactive way to learn the PowerShell language through Pester unit testing.
-
Jupyter-PowerShell - Jupyter Kernel for PowerShell.
Logging
-
PoShLog - Cross-platform, extensible logging module built upon Serilog.
Module Development Templates
-
Plaster - Plaster is a template-based file and project generator written in PowerShell.
-
PSModuleDevelopment - Get started using module templates in 2 minutes with this module’s low entry barrier and casual convenience.
-
Catesta - Catesta is a PowerShell module project generator. It uses templates to rapidly scaffold test and build integration for a variety of CI/CD platforms.
Package Managers
-
PowerShellGet - PowerShellGet is the Package Manager for PowerShell. Packages are available on PowerShellGallery.
-
Chocolatey - The package manager for Windows. The sane way to manage software on Windows.
-
GitLab - Use a GitLab server as Package Provider.
-
Scoop - A command-line installer for Windows.
-
PowerShell App Deployment Toolkit - Provides a set of functions to perform common application deployment tasks and to interact with the user during a deployment.
Parallel Processing
-
PoshRSJob - Provides an alternative to PSJobs with greater performance and less overhead to run commands in the background.
-
Invoke-Parallel - This function will take in a script or scriptblock, and run it against specified objects(s) in parallel.
-
PSThreadJob - Module for running concurrent jobs based on threads rather than processes.
Podcasts
Security
-
File System Security - Allows a much easier management of permissions on files and folders.
-
PowerShellArsenal - Module used to aid a reverse engineer.
-
PowerTools - Collection of projects with a focus on offensive operations.
-
PowerForensics - Popular live disk forensics platform for windows.
-
PowerSploit - Post-exploitation framework.
-
PowerShellEmpire - Post-exploitation agent.
-
PSReflect - Easily define in-memory enums, structs, and Win32 functions in PowerShell. Useful for attacks, example .
-
BloodHound - Easily identify highly complex attack paths that would otherwise be impossible to quickly identify.
-
Nishang - Enables scripting for red team, penetration testing, and offensive security.
-
Harness - Interactive remote PowerShell Payload.
-
Invoke-Obfuscation - PowerShell Obfuscator.
-
p0wnedShell - PowerShell Runspace Post Exploitation Toolkit.
-
PESecurity - Module to check if a Windows binary (EXE/DLL) has been compiled with ASLR, DEP, SafeSEH, StrongNaming, and Authenticode.
-
Powershellery - Powershell scripts used for general hackery.
-
PowerUpSQL - Toolkit for Attacking SQL Server.
SharePoint
SQL Server
-
dbatools - Helps SQL Server Pros be more productive with instance migrations and much more.
-
SimplySql - SimplySql is a module that provides an intuitive set of cmdlets for talking to databases that abstracts the vendor specifics. The basic pattern is to connect to a database, execute one or more sql.
Testing
-
Pester - PowerShell BDD style testing framework.
-
Format-Pester - PowerShell module for documenting Pester’s results - exports Pester results to HTML, Word, text files using PScribo .
-
Selenium - PowerShell module to run a Selenium WebDriver.
-
PSScriptAnalyzer - PSScriptAnalyzer provides script analysis and checks for potential code defects in the scripts by applying a group of built-in or customized rules on the scripts being analyzed.
Themes
-
Oh-My-Posh - Tons of beautiful theme that can be enabled by one single command (includes many awesome powerline theme).
-
PoshColor - Colour output from common commands with support for custom themes.
-
Powerline - PowerShell Classes for richer output and prompts.
-
Starship - The minimal, blazing fast, and extremely customizable prompt for any shell.
UI
-
AnyBox - Designed to facilitate script input/output with an easily customizable WPF window.
-
BurntToast - Module for creating and displaying Toast Notifications on Microsoft Windows 10.
-
Graphical - Module to plot colorful console 2D Graphs (Scatter, Bar, Line).
-
GraphicalTools - A module that mixes PowerShell and GUIs! - built on Avalonia and gui.cs.
-
PS-Menu - Simple module to render interactive console menu.
-
PSWriteColor - Write-Color is a wrapper around Write-Host allowing you to create nice looking scripts, with colorized output.
-
Terminal-Icons - Module to show file and folder icons in the terminal.
-
psInlineProgress - Write inline progress bars in PowerShell.
Videos
Webserver
-
Flancy - Web microframework for Windows PowerShell.
-
Pode - Pode is a Cross-Platform PowerShell framework for creating web servers to host REST APIs, Web Sites, and TCP/SMTP Servers.
-
Polaris - A cross-platform, minimalist web framework for PowerShell.
-
WebCommander - Run scripts and view results, in a friendly web GUI or via a web service.
-
Universal Dashboard - Cross-platform module for developing websites and REST APIs.
Misc
-
DbgShell - A PowerShell front-end for the Windows debugger engine.
-
m2cgen - A CLI tool to transpile trained classic ML models into a native PowerShell code with zero dependencies.
-
poke - Crazy cool reflection module for PowerShell.
Explore and invoke private APIs like nobody is watching.
Useful for security research, testing and quick hacks.
-
WSLab - Windows Server rapid lab deployment scripts.
-
PoshBot - Powershell-based bot framework.
-
PoShKeePass - Module for working with KeePass databases.