Title card: Auditing the Scripts Already in Your Intune Tenant

Auditing the Scripts Already in Your Intune Tenant

I set runRemediationScript to false, Graph reads it back that way, and both devices still run the fix every hour. IntuneScriptLab audits what the tenant holds against rules, git and what devices report.

Title card: Reading the Intune Management Extension Logs as Objects

Reading the Intune Management Extension Logs as Objects

The Enrollment Status Page closes while my user’s blocking app is still InProgress, and only AppWorkload.log records it. IntuneScriptLab reads the agent’s four CMTrace logs as objects and timelines.

Title card: Intune Assignment Filters That Never Match

Intune Assignment Filters That Never Match

Microsoft’s own cpuArchitecture filter example saves without complaint and drops every x64 Windows device, which reports amd64. My command checks a rule locally the way the service parsed and matched it.

Title card: What the Intune Agent Counts as Installed

What the Intune Agent Counts as Installed

A file rule set to “does not exist” saves in the portal and Graph, and the Intune agent never counts the app as installed. My harness checks Win32 detection, requirements and installs the way devices did.

Title card: Running Intune Scripts Locally the Way the Agent Does

Running Intune Scripts Locally the Way the Agent Does

My remediation prints success and exits 0 over a Set-ItemProperty error, and Intune calls it Failed. My harness runs scripts the way the agent does, as me, as SYSTEM or as another account, and now agrees.

Title card: Linting Intune Scripts With Rules Measured on Real Devices

Linting Intune Scripts With Rules Measured on Real Devices

Microsoft’s sample detection for expired certificates returns a count before its exit 1, so it exits 0 and the remediation never runs. My linter flags that, and every rule cites the device test behind it.

Title card: Testing Intune Scripts Before Intune Does

Testing Intune Scripts Before Intune Does

Intune runs my scripts in Windows PowerShell 5.1, from system32, often as SYSTEM. My console is none of those, so I built a module that tests scripts the way the agent will, from what real devices did.

Title card: Active Directory Test Data, a Year and Six Providers Later

Active Directory Test Data, a Year and Six Providers Later

In August 2025 I published a module that filled a lab domain and tore it down again. Its three commands still run, and almost nothing underneath them survived the move into TestEnvironment.

Title card: Learning Resources

Learning Resources

A running list of the books, communities, modules, tools and certification paths I have actually used. Kept as I find things, including the ones I wish I had known about earlier.

Title card: Moving This Blog From Ghost to Hugo Without Changing a Single Post URL

Moving This Blog From Ghost to Hugo Without Changing a Single Post URL

Three hundred dollars a year for Ghost(Pro) to host forty posts, with a members list four rows long and one of them me. I was paying for a CMS to serve what had always been a static site. Moving it to Hugo on Azure Static Web Apps changed not one post URL.