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.
-
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
-
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
).
-
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
-
AutoSPInstaller - Automated
SharePoint 2010-2019 installation script.
-
Client-side SharePoint
- API for SharePoint 2010, 2013 and Online.
-
SPReplicator
- SPReplicator helps replicate SharePoint list data to/from CSV, SQL
Server, SharePoint itself and more.
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.
-
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.