• Switch statements in PowerShell are like the Swiss Army knife of control flow – they can handle multiple conditions with the elegance of a ballet dancer and the efficiency of a German engineer. Think of them as the sophisticated cousin of the if-else statement who went to college, learned multiple languages, and now works at a consulting firm. While if-else chains are like asking “Are you this? No? How about this? No? This?” until you find the right answer (or give up and cry), switch statements are more like having a well-organized filing cabinet where you can instantly pull out…

  • Enums in PowerShell provide a clean way to work with strongly typed values, improving readability, maintainability, and reducing errors. By grouping related constants under a single type, you avoid magic numbers and hardcoded strings, gain autocompletion, and enable built-in validation in functions. Whether you use native syntax, Add-Type with C#, or classes with static properties, enums make your scripts more robust and easier to manage.

  • Dot sourcing is like the PowerShell equivalent of borrowing your neighbor’s tools – except instead of forgetting to return them, you get to keep everything permanently in your workspace. It’s a powerful feature that allows you to run a script in the current scope rather than in a new, child scope, making all its goodies available to you immediately. Think of it as the difference between hiring a contractor who works in their own workshop (regular script execution) versus inviting them into your living room to do the work (dot sourcing). Sure, your living room might get a bit messy,…

  • Hashtables and PSCustomObjects may look similar in PowerShell, but they serve very different purposes. This post explores their syntax, performance, and practical use cases, helping you choose the right structure for dynamic data handling or clean output formatting.

  • Choosing between -match and -like depends on the complexity of your pattern matching. Use -like for simple wildcard checks, such as finding strings that contain certain characters (* and ? are your friends). When you need more power, like anchoring patterns, grouping, or advanced conditions, reach for -match, which leverages regular expressions. In short: -like is quick and simple, -match is precise and flexible.

  • PowerShell 7.4 introduces a subtle but impactful change: the default encoding for HTTP requests is now UTF-8 instead of ASCII. This shift can cause unexpected issues when working with the Microsoft Graph API, particularly during .intunewin file commits in Intune. In this post, I explain the root cause, share workarounds, and offer practical solutions to keep your automation workflows running smoothly.