Objectives
| # | Objective |
| 1 | Open PowerShell and understand the console environment |
| 2 | Run your first cmdlets — Get-Date, Get-Host, $PSVersionTable |
| 3 | Use Get-Help to explore cmdlet documentation |
| 4 | Understand the Verb-Noun naming convention and discover cmdlets with Get-Command |
| 5 | Use common aliases and understand why they exist |
| 6 | Navigate the pipeline — pass objects between cmdlets |
| 7 | Filter and format output with Where-Object and Select-Object |
| 8 | Knowledge check — PowerShell fundamentals |
Key Concepts
| Concept | What it means |
| Cmdlet | A compiled command in PowerShell following the Verb-Noun convention. Examples: Get-Process, Stop-Service, New-Item. |
| Pipeline ( | ) | Passes the output of one cmdlet as input to the next. PowerShell passes full objects — not just text — making pipelines extremely powerful. |
| Verb-Noun | All cmdlets follow this naming pattern. The verb describes the action (Get, Set, New, Remove) and the noun describes the target (Process, Service, Item). |
| Alias | A short name for a cmdlet. ls = Get-ChildItem, pwd = Get-Location, ? = Where-Object. Useful in the console, avoid in scripts. |
| Get-Help | The built-in documentation system. Every cmdlet has a help page. Use -Examples to see usage. Run Update-Help to refresh documentation. |
| Get-Command | Discovers all available cmdlets, functions, and aliases. Use -Verb or -Noun to filter. The key to finding what you need. |
| Where-Object | Filters objects in the pipeline. Use Where-Object { $_.Property -eq "value" } to select only matching objects. |
| Select-Object | Chooses specific properties from pipeline objects. Like SELECT in SQL — reduces output to only what you need. |
Commands Practised in This Lab
| Cmdlet / Expression | Purpose |
| Get-Date | Returns current date and time as a DateTime object |
| Get-Host | Shows PowerShell host application info (name, version, UI) |
| $PSVersionTable | Built-in variable — shows PS version, edition, OS |
| Get-Help <cmdlet> | Shows help for any cmdlet. Add -Examples or -Full |
| Get-Command | Lists all available commands. Filter with -Verb or -Noun |
| Get-Command -Verb Get | Show all cmdlets that use the Get verb |
| Get-Command -Noun Service | Show all cmdlets targeting Service objects |
| Get-Alias | Lists all aliases and what they map to |
| Get-Process | Lists running processes — classic pipeline source |
| Get-Process | Where-Object { $_.CPU -gt 10 } | Filter to processes using more than 10s of CPU |
| Get-Process | Select-Object Name, CPU, ID | Return only Name, CPU and ID columns |
| Get-Service | Lists all Windows services and their status |
| Get-Service | Where-Object { $_.Status -eq "Running" } | Show only running services |
| Get-Service | Sort-Object DisplayName | Sort services alphabetically |
Tab completes cmdlet names and parameters. ↑ ↓ navigates command history. Type ? or help at any time to see available commands for the current task.