Used to keep track of useful learning resources as I discover them.
This page is used to keep track of resources used in my professional development, or things I have found afterward that I wish I had known.
A curated reading path from beginner to advanced topics in PowerShell, with direct links and companion resources where applicable.
Experience | Title & Link | Summary |
---|---|---|
🟢 Beginner | Learn PowerShell in a Month of Lunches | Foundational resource. The early chapters may feel basic to those with experience, but it builds solid habits. |
🟡 Intermediate | Learn PowerShell Scripting in a Month of Lunches Companion GitHub |
Dives into functions, modules, and testing with Pester. Builds directly on the first book. |
🟡 Intermediate | Secrets of PowerShell Remoting DevOps Collective Book Series |
Explains real-world remoting patterns beyond the basics. Great for enterprise workflows. |
🔴 Advanced | Mastering PowerShell Scripting | Automation and scripting at scale with strong community insights. Author: Chris Dent. |
🟡 Intermediate | Practical Automation with PowerShell GitHub |
Use PowerShell to solve day-to-day automation needs with real-world examples. |
🟡 Intermediate | PowerShell Automation and Scripting for Cybersecurity | A security-focused deep dive into scripting with real adversary defense examples. |
🟡 Intermediate - 🔴 Advanced | Office 365 for IT Pros Automation Companion |
Continuously updated. The de facto source for Microsoft 365 administration, plus automation. |
These tools streamline working with Microsoft 365, Graph API, and portal sprawl. All are free and extremely useful in both exploratory and automation scenarios.
A few active and supportive communities for learning, troubleshooting, and sharing knowledge with emphasis around PowerShell and Microsoft environments.
Real-world environments are the best teachers. These hands-on resources simulate real tasks or introduce structured challenges.
Experience | Resource | Summary |
---|---|---|
🟢 Beginner | Hack The Box Academy | Offers training on Windows administration, PowerShell, and Active Directory. Free tier available. Performance may vary—laggy VMs were a downside in later sessions. |
🟢 Beginner | PSKoans | Interactive PowerShell learning in the style of Koans (fill-in-the-blank tests). Great for reinforcing syntax and logic, though it’s no longer actively maintained. |
🟡 Intermediate | UnderTheWire Wargames | PowerShell-based wargames using SSH. Requires clue-hunting and critical thinking to advance levels—ideal for skill sharpening without a walkthrough. |
While you can interact with Graph directly using
Invoke-RestMethod
or other programming languages, I consider PowerShell and Graph inseparable in modern environments.If you’re working in PowerShell and managing Microsoft 365—even minimally—you’ll almost certainly rely on Microsoft Graph. Unless you’re in a fully on-prem setup with no M365 presence, you should know how to get started with it.
PowerShell ISE does not support version 7+ and is no longer receiving updates. Transition to Visual Studio Code (VSCode) as your primary PowerShell editor.
VSCode is the modern, supported platform for PowerShell development. Install it on any system still using ISE, especially jump boxes, and configure centralized policies with Intune and ADMX templates to restrict extensions and features to only what’s approved.
VSCode also supports Tunnels, a secure and flexible remote editing feature, just ensure proper security configurations are in place.
If you find VSCode too developer-oriented or you miss ISE’s simplicity—especially for building GUIs—PowerShell Studio from Sapien is a powerful alternative. It’s a solid option if your organization can justify the $550 license cost.
$PROFILE
for VSCode is separate from your non-vscode pwsh. Current favorites are night-owl
and quick-term
.CTRL + H
for find and replace makes things smoother.Two PowerShell Versions
Windows PowerShell (powershell.exe
) is built into the OS, while PowerShell 7+ (pwsh.exe
) is cross-platform and must be installed separately. Most modern modules (post-2020) are designed for PowerShell 7.
Install PowerShell 7 and set it as your default environment before installing modules—it will simplify your experience and avoid compatibility headaches. For legacy modules that only work with Windows PowerShell, use the -UseWindowsPowerShell
switch when importing them.
These modules are foundational to automation, Microsoft 365, and security-related tasks. Each includes installation tips and links where relevant.
Also note: as PowerShell 7 becomes the default,
Install-Module
is being phased out in favor ofInstall-PSResource
. It’s worth getting familiar with the new syntax now.
Module | Purpose | Notes |
---|---|---|
Az |
Azure resource management | Use Install-Module -Name Az |
ExchangeOnlineManagement |
Manage Exchange Online mailboxes, transport, and more | Essential for M365 admins |
Microsoft.Graph / Microsoft.Graph.Beta |
Graph API SDK access | Beta includes newer features; SDK is evolving |
EnhancedHTML2 |
Builds cleaner HTML reports | Adds styling options to ConvertTo-HTML |
Microsoft.Graph.Entra |
Simplified Entra ID (Azure AD) module | More intuitive than Graph SDK, but still limited |
Microsoft.Online.SharePoint.PowerShell |
SharePoint Online admin tasks | Standard module for SPO scripting |
MicrosoftTeams |
Manage Teams, policies, and users | Some functions limited by permissions |
Microsoft.PowerShell.ConsoleGuiTools |
Adds Out-ConsoleGridView |
Console-based interactive filtering |
Microsoft.PowerShell.GraphicalTools |
Adds Out-GridView (GUI filtering) |
Windows-only, great for quick data views |
PowerShellGet / PSResourceGet |
Module management | Use Install-PSResource for PowerShell 7+ |
Module | Purpose | Notes |
---|---|---|
Lenovo.Client.Scripting |
Interact with Lenovo hardware | Useful in enterprise environments |
⚠️ Always review before production use.
Module | Purpose | Notes |
---|---|---|
BurntToast |
Creates toast notifications in Windows | Great for alerts and user feedback |
Graph.EasyPIM |
CLI-based role activation via Graph | Avoids manual steps in Entra PIM |
ImportExcel |
Export structured Excel reports | Adds charts, formatting, autosize, and more |
Microsoft.Graph.PlusPlus |
Makes Graph SDK more PowerShell-like | Useful if SDK syntax is clunky |
Pansies |
Styled terminal output (colors, gradients) | Cosmetic improvements for terminals |
platyPS |
Markdown module documentation generator | Useful for writing help files |
psframework |
Logging and parameter management | Highly structured and customizable |
Tool | Purpose |
---|---|
Find-MgGraphCommand | Discover Graph SDK cmdlets and their endpoints |
Find-MgGraphPermission | Identify required permissions for a Graph cmdlet |
Invoke-MgGraphRequest | Raw Graph requests when SDK cmdlets are missing |
Even with hands-on experience, it helps to prep for interviews to avoid stumbling through familiar topics.
I recommend reviewing this M365 interview question guide as a refresher.
Instead of writing custom scripts or remediation tasks to manage Office configuration, use this tool to generate XML-based deployment configs. It supports GUI-driven policy selection and minimizes human error.
Explore Microsoft Graph endpoints interactively—view required permissions, test queries, and examine API responses. A great way to learn the structure of Graph calls before scripting.
Helps troubleshoot Exchange, Teams, DNS, and mail flow issues. I often forget this tool exists and come up with manual workarounds—leaving it here as a reminder to use it first.
For when you set up the lab, now what?
Listed under test lab resources since MCPs are proof-of-concept tools and not recommended for production without evaluation.
Model-Context-Protocol is an open standard introduced by Anthropic to help large language models (LLMs) interact more effectively with data sources using natural language.
MCPs shine in read operations and data analysis, allowing users to query environments like Entra or Active Directory without needing deep scripting or portal experience. However, performance on write operations is currently lacking—batch tasks like adding group members can be slow and inefficient.
global
to be accessible.Personal thoughts on industry certification usefulness, all opinions my own.
Whether due to the PeopleCert acquisition or their own internal decisions, this organization represents some of the more frustrating trends in the certification space. They now require a paid subscription to maintain a digital badge and have introduced renewals on certifications without updating the material.
Despite these practices, PeopleCert holds a strong position in the industry through certifications like Agile, ITIL, PRINCE2, and PMP. For now, professionals largely have to work within their system.
BetterCloud is a SaaS management platform competing with tools like Microsoft Entra and Okta. It offers stronger integrations with Google Workspace and Slack than with Microsoft products.
The standout feature is their Flight School training portal, which provides free certification exam access and even sends out swag for completion.
CompTIA offers vendor-neutral certifications that are well-respected across the IT industry. While slightly pricey for early-career professionals ($300–$400 per exam), they provide foundational knowledge and broad applicability.
Certifications are valid for three years and can be renewed by passing a higher-level CompTIA exam or qualifying vendor certifications (details here).
For study resources, Professor Messer is a top recommendation for the A+/Network+/Security+ trio. His content is always current, thorough, and free on YouTube.
Microsoft certifications are highly recognized and aligned to specific roles. While most require an annual renewal via a free online assessment, foundational exams are lifetime-valid.
Microsoft also offers Applied Skills, which are task-focused, scenario-based microcredentials. While not resume game-changers, they’re useful for internal mobility or skill validation.
All other Microsoft certification exams cost $165 and are valid for one year, with free online renewal available via Microsoft Learn.
For a complete list of certifications and their prerequisites, see Become Microsoft Certified (PDF). Microsoft Learn is the recommended study platform—accurate, up-to-date, and accessible during the exams themselves.
They’ve also begun publishing official course videos to supplement learning.
Hands-on experience is increasingly difficult as services move to the cloud. You can spin up a temporary lab with the Azure Free Trial and activate trial licenses for services. Be cautious: a credit card is required, and it’s easy to exceed the $200 cap.
Also see the Lab Setup section for ideas on building your own practice tenant.
Okta certifications take a slightly different approach: you cannot go back to review or change answers during the exam. Questions are weighted individually, and you’re often asked to select the best answer—not just a correct one.
WGU offers fully online, self-paced Bachelor’s and Master’s degrees in IT and related fields. You pay by term (6 months) and can complete as many courses as you’re able to within that block.
WGU degrees often include industry certification vouchers (CompTIA, Cisco, Microsoft, etc.), which can also count as course credit if you’ve already earned them. The flexibility and certification integration make WGU a cost-effective, accelerated option for motivated learners.
Many start with WGU but stall due to life circumstances or poor planning. With the right prep, you can dramatically shorten your degree path and save money.
The lead time from starting your application to beginning your term is typically 45–60 days. Plan ahead to align prep work with your intended start date.
With enough transfer credits (from Sophia, WGU Academy, prior learning, or certifications), you could enter WGU’s IT Bachelor’s program with just 60 credits remaining—making it feasible to graduate in one or two terms.