Module 1: PowerShell Fundamentals
Lesson 1: Introduction to PowerShell
- What is PowerShell? (Object-oriented shell vs. traditional CLI)
- PowerShell versions (5.1 vs. 7+)
- Key features (Pipeline, Cmdlets, Modules)
Lesson 2: Basic Syntax & Commands
- Cmdlet structure (Verb-Noun pattern)
- Getting help (Get-Help, Get-Command)
- Common cmdlets (Get-Process, Get-Service)
Lesson 3: Hands-on Lab
- Launch PowerShell console and VS Code
- Run basic system inspection commands
- Customize the PowerShell profile
Module 2: Working with Objects
Lesson 1: The PowerShell Pipeline
- Object passing vs. text parsing
- Select-Object, Where-Object, Sort-Object
- Formatting output (Format-Table, Format-List)
Lesson 2: Data Export & Import
- Exporting to CSV, JSON, XML
- Importing data for processing
- Working with ConvertTo-Json and ConvertFrom-Json
Lesson 3: Hands-on Lab
- Filter and sort process data
- Export system info to CSV
- Create a report from imported data
Module 3: Scripting Basics
Lesson 1: Variables & Operators
- Variable types and scope
- Comparison operators (-eq, -lt)
- Logical operators (-and, -or)
Lesson 2: Control Flow
- If/Else statements
- Switch statements
- Loops (For, While, ForEach)
Lesson 3: Hands-on Lab
- Write a script to check disk space
- Create a user input validation script
- Process a list of servers with loops
Module 4: Functions & Modules
Lesson 1: Writing Functions
- Function structure (parameters, return values)
- Advanced parameters (validation, pipeline input)
- Comment-based help
Lesson 2: Creating Modules
- Script modules vs. binary modules
- Module manifest files
- Publishing to PowerShell Gallery
Lesson 3: Hands-on Lab
- Build a reusable logging function
- Create a custom module
- Share a module via local repository
Module 5: Error Handling & Debugging
Lesson 1: Error Handling
- Try/Catch/Finally
- $Error automatic variable
- Common error types (terminating vs. non-terminating)
Lesson 2: Debugging Techniques
- Write-Debug and breakpoints
- Step-through debugging in VS Code
- Transcript logging (Start-Transcript)
Lesson 3: Hands-on Lab
- Add error handling to existing scripts
- Debug a problematic script
- Create an error logging system
Module 6: Administrative Automation
Lesson 1: Windows Administration
- Active Directory cmdlets
- Managing services and processes
- Registry and file system operations
Lesson 2: Cross-Platform PowerShell
- PowerShell Core on Linux/macOS
- SSH remoting
- Managing Docker containers
Lesson 3: Hands-on Lab
- Automate user creation in AD
- Create a cross-platform backup script
- Manage Azure resources via PowerShell
Module 7: Advanced Topics
Lesson 1: Regular Expressions
- Pattern matching with -match
- Select-String cmdlet
- Regex in validation and parsing
Lesson 2: Working with APIs
- Invoke-RestMethod
- OAuth authentication
- Processing JSON responses
Lesson 3: Hands-on Lab
- Parse log files with regex
- Query a REST API and process results
- Build a weather reporting script
Module 8: Real-World Projects
Lesson 1: Automation Projects
- System health monitoring
- Automated reporting
- Bulk user management
Lesson 2: Capstone Project
- End-to-end solution: Data collection → Processing → Reporting → Notification
Lesson 3: Best Practices Review
- Script organization
- Performance optimization
- Security considerations