Blog

Using JSON in SQL Quicktipp

I had a situation recently where I needed to filter specific offboarding tasks from my database. Sounds simple at first, but the challenge was that the relevant information was not stored in its own column, it was inside a JSON field. In my case, the table stores requests from au2mator. Every request can have different…

Retrieve and Export Azure Automation Jobs with All Parameters

This PowerShell script retrieves Azure Automation jobs from the last 7 days for a specific runbook, enriches each job with missing details, normalizes all parameters, and exports everything to a CSV file for easy analysis. This can be incredibly useful for operational monitoring, auditing, and troubleshooting. In many environments, runbooks are triggered with dynamic input…

Input Parameters and Validation in PowerShell

When writing or re-organizing PowerShell scripts, one of the first improvements I usually make is replacing hardcoded values with input parameters. At the beginning of my PowerShell journey I often wrote scripts where usernames, server names, or paths were directly written into the script itself. This works for quick tests, but very quickly those scripts…

Why $ErrorActionPreference Is Important in PowerShell

Error handling is an important when writing scripts. Many automation scripts interact with external systems such as Active Directory, Azure services, databases, or REST APIs. When something goes wrong, the script should detect the error and react accordingly. PowerShell provides structured error handling through Try, Catch, and Finally blocks. However, there is an important detail…

Hashtable vs PSCustomObject in PowerShell

PowerShell frequently works with structured data, and two common ways to store such data are Hashtables and PSCustomObjects. While both structures can look similar at first, they behave differently and serve different purposes. Understanding the differences between these two approaches helps create scripts that are easier to read, easier to maintain, and better suited for…

How to Measure Script Runtime in PowerShell

This is a short Blogpost, but very useful. When writing scripts, it is often important to understand how long a script or command takes to execute. Measuring script runtime can help identify slow operations, analyze performance, and improve automation processes. In many environments scripts run regularly, for example in scheduled tasks, background jobs, or Azure…

Why JSON Is So Powerful in PowerShell

JSON has become one of the most important data formats in modern automation. When you are working with REST APIs, configuration files, or cloud services like Azure and Microsoft Graph, JSON appears everywhere. Fortunately, PowerShell has excellent built-in support for working with JSON, making it easy to convert between structured PowerShell objects and JSON data.…

Start-AzAutomationRunbook -Wait Is Not Enough

When working with Azure Automation Runbooks, it is quite common that one runbook needs to trigger another runbook and wait for the result before continuing the process. The cmdlet Start-AzAutomationRunbook provides the parameter -Wait, which at first glance seems to solve exactly this problem. The command waits until the child runbook finishes. However, there is…

Why Set-ADUser Sometimes Fails Right After User Creation

When working with PowerShell in Active Directory, most scripts look simple at first. You create a user, you update some attributes, you add group memberships, and you move on. In reality, things are not always that clean, especially in environments with multiple Domain Controllers. I ran into a situation that looked strange at the beginning.…

Get All Direct and Indirect Reports from Active Directory

This PowerShell snippet retrieves all Active Directory users that report to a specific manager, including all indirect reports, meaning the whole org tree below that manager. This is useful for scenarios like access reviews, license cleanup, delegations, offboarding, team reporting, and automation workflows where actions must apply to an entire reporting line and not only…

Something went wrong. Please refresh the page and/or try again.


Meinem Blog folgen

Erhalte Benachrichtigungen über neue Inhalte direkt per E-Mail.