Welcome to the Jocha blog!

Installing .NET Framework on Windows 8 and 2012

I have been struggling a bit with adding .NET Framework 3.5 on a few systems (and reference image for MDT). The posts on MSDN and TechNet are good, but not always crystal clear.

Here is how I solved the issues we were experiencing…

Get Active Directory pictures in Windows 10

We have been working on migrating a customer from Windows 7 over to Windows 10. Our goal is to have Windows 8 and 10 clients pull the pictures from Active Directory to the users local profiles.

Installing HP branded Windows on a Virtual server

My customer has bought a Hewlett-Packard server with a Windows Server 2012 ROK (Reseller Option Kit) license.
However this customer had some issues with the installation of the license on the Hyper-V guest server. Since the Windows server does not recognize the ‘hardware’ as a Proliant server, licensing will not succeed.

However there is a simple solution…

Azure Backup Job Failed 0x1D4C2

Lately we’ve been getting a lot of inquiries regarding Azure Backup. One customer tried to set up the Microsoft Azure Recovery Services (MARS) agent, they experienced a problem where the backup job fails immediately…

Windows Server 2025 Backup reports with PowerShell and SendGrid

A modernised rewrite of the popular WBAdmin email report script, now compatible with Windows Server 2025 and using the SendGrid REST API instead of SMTP for reliable, credential-free mail delivery.

Passwordless GitHub Actions to Azure with Federation

Passwordless GitHub Actions to Azure with Federation

Replace expiring client secrets in GitHub Actions with Workload Identity Federation. This walkthrough sets up an Entra ID App Registration, scoped federated credentials, and a clean azure/login step so your pipelines authenticate to Azure with short lived OIDC tokens.

Real-time Entra ID Break-glass Sign-in Alerts (Part 2)

Real-time Entra ID Break-glass Sign-in Alerts (Part 2)

Part 2 of the real-time Entra ID series. Stream sign-in logs through diagnostic settings to an Event Hub, consume them in the same Azure Function App, and page on duty the moment a break-glass UPN signs in or sign-in risk crosses a threshold.

Real-time Entra ID Group Alerts with Azure Functions (Part 1)

Real-time Entra ID Group Alerts with Azure Functions (Part 1)

Get notified the moment someone joins your Global Admins or a Tier 0 access group. Part 1 of a two-part series builds an Azure Function App that consumes Microsoft Graph change notifications, validates the webhook, and posts Teams alerts on every membership change.

End-to-End User Offboarding with Microsoft Graph PowerShell

End-to-End User Offboarding with Microsoft Graph PowerShell

Leavers retaining residual access is a chronic security risk. This walkthrough turns one HR row into a fully offboarded user with sessions revoked, mailbox converted to shared, OneDrive transferred to the manager, groups cleared, and licences released, all with a clean audit trail.

Automating Intune Win32 App Packaging with GitHub Actions

Automating Intune Win32 App Packaging with GitHub Actions

Intune’s Win32 app channel is powerful, but its packaging workflow is stuck in 2018. Here is a GitHub Actions pipeline that builds .intunewin packages, uploads them to Intune through Microsoft Graph using federated credentials, and keeps every app’s metadata version controlled in Git.

Entra ID PIM Role Activations with PowerShell

Entra ID PIM Role Activations with PowerShell

Skip the Entra admin portal clicks for routine maintenance windows. This walkthrough shows how to list, activate, and deactivate PIM role assignments in PowerShell with the Microsoft Graph SDK, including a batch helper for change tickets.

Conditional Access Policy Backups via PowerShell

Conditional Access Policy Backups via PowerShell

Conditional Access policies are critical Entra ID security controls, but many tenants have no backup or version history. This walkthrough builds a short PowerShell script that exports every CA policy to JSON and commits it to Git, giving you an auditable, restorable baseline you can schedule in Azure Automation or GitHub Actions.