PowerShell
PowerShell scripting, automation, and M365/Azure management
Last edited .
Start here
- PowerShell 101 : New to scripting? Start here for the foundations, then adapt a small script to a real task.
- PnP PowerShell samples : For SharePoint and M365 tasks: look for a worked example, then check its permissions and assumptions before running it.
Official resources
Getting started
Tip: use the built-in aliases like ls, cat, cd, man - they’re similar in Windows/Linux, which makes it easier to switch context.
- PowerShell 101
- Hanselman being awesome (50 min YouTube) + blog post
- ctrl + space is your friend. Use wildcards too :)
- Winget + My winget installs
Key modules for M365 and Azure
- Microsoft.Graph - unified M365 management
- PnP.PowerShell - SharePoint/M365
- CLI for Microsoft 365 - cross-platform M365 CLI
- Az module - Azure management
- ExchangeOnlineManagement
- MicrosoftTeams
- Powershell Runbook for Azure Automation / YouTube
Tools
- PSScriptAnalyzer - linting
- VS Code PowerShell extension
- Oh My Posh - prompt theming
- Awesome PowerShell
- Awesome CSV
- xan csv amazing CSV tool
- yq - query YAML/JSON/CSV/TOML in the command line, nicer version of jq
Community resources
- Chris Titus Tech - PowerShell tips and tricks
- Adam the Automator
- PowerShell.org
- PowerShell subreddit
- PowerShell Discord
- PnP PowerShell samples
Still stuck? Work with me or get in touch.