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.
- Windows
PowerShell Networking Guide - Language specific guide to Windows
networking.
- 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
- 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
- AutoSPInstaller -
Automated SharePoint 2010-2019 installation script.
- SPReplicator -
SPReplicator helps replicate SharePoint list data to/from CSV, SQL
Server, SharePoint itself and more.
- SharePoint2019Commands
- PowerShell module to help you auto-load all SharePoint 2019
cmdlets.
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.
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.
powershell.md
Github