PowerShell
PowerShell scripting, automation, and M365/Azure management
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
- Iron Scripter challenges
- PnP PowerShell samples