Where-Object
Filter objects in the pipeline
Get-ChildItem | Where-Object { $_.Extension -eq '.md' }
Commands to copy. Scripts that preview before they change anything. Builders that fill in the blanks. Everything explained in plain English.
Start here
Read these in order. Then skip around.
A shell and a scripting language that works with objects, not just text.
Windows Terminal, pwsh, and the old Windows PowerShell 5.1 host.
Why a script is blocked, what each policy means, and what to change (if anything).
Download a .ps1, unblock it, and run it with parameters from the right folder.
Left to right, objects not text, and why Format-Table has to be last.
WhatIf, Confirm, and why you should not paste blindly from the internet (including this site).
Why PowerShell output is not just text, and how to see and pick the parts you want.
Store a value with $name = ..., reuse it, and know when quotes expand it.
-eq, -like, -match, and why > writes a file instead of comparing.
Make shortcuts that load every time, and add commands others have written.
Cheat sheet
These cover most of week one.
Where-Object
Filter objects in the pipeline
Get-ChildItem | Where-Object { $_.Extension -eq '.md' }
Get-ChildItem
List files in a folder
Get-ChildItem -Path .\docs
Get-Process
List running processes
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10
Test-Connection
Ping a host
Test-Connection -ComputerName 1.1.1.1 -Count 2
Get-Content
Read a text file
Get-Content -Path .\notes.txt
Get-Help
Read help for a command
Get-Help Get-ChildItem -Full
The commands
Tools
Translate
Know grep, ls -la, or ipconfig? Find the PowerShell way, plus the gotchas.
Explain
Paste a line you found online. See each step in plain English, with warnings for anything risky.
Build
Forms that write the script for you: copy, rename, clean up, zip, schedule.
Every command on two sides of paper. Tape it next to your monitor.