Intune Remediation-Skripte lokal testen und debuggen
- Florian Salzmann
- Veröffentlicht am 27 May, 2025
- Aktualisiert am 08 Jan, 2026
- 02 Mins read
- Proactive Remediations,Microsoft Intune,PowerShell,Troubleshooting
Wenn ein Proactive Remediation Script nicht wie erwartet funktioniert, testest du es am besten lokal. Das geht viel schneller, als auf den nächsten Sync von Intune zu warten. In diesem Beitrag zeige ich dir, wie ich Intune Remediation-Skripte direkt auf einem Windows-Gerät troubleshoote. Dabei gehe ich auf Skript-Speicherorte, relevante Logs und Registry-Einträge ein. So kannst du genau nachvollziehen, was passiert ist und warum.
Für einige Beispiele und eine Einführung in Remediation-Skripte schau dir das Community-Repo und meinen Blogbeitrag dazu an: Endpoint Analytics Proactive Remediation Community
Speicherort der Skripte auf der Festplatte
Sobald eine Proactive Remediation ausgeführt wird, lädt Intune die Skripte in folgendes Verzeichnis herunter:
C:\Windows\IMECache\HealthScripts
Die Detection- und Remediation-Skripte liegen hier im Klartext. Das bedeutet: Jeder mit Zugriff auf das Gerät kann sie öffnen und lesen. Darum ist es wichtig, niemals Secrets, Credentials oder sensible Daten in diesen Skripten zu speichern.
Du findest dort Unterordner für jede Skript-ID. Darin liegen die Dateien DetectionScript.ps1 und RemediationScript.ps1, die du manuell zum Testen ausführen kannst.
Skripte manuell ausführen
Um ein Skript zu testen, ohne auf Intune zu warten, führe ich es direkt aus dem Cache-Ordner aus:
cd "C:\Windows\IMECache\HealthScripts\<ScriptGUID>"
powershell.exe -ExecutionPolicy Bypass -File .\DetectionScript.ps1
Dieselbe Methode funktioniert auch für die Remediation:
powershell.exe -ExecutionPolicy Bypass -File .\RemediationScript.ps1
So findest du Syntaxfehler oder Probleme, die erst auf dem Zielgerät auftauchen.
Logs prüfen
Die Intune Management Extension schreibt alle Aktivitäten in eine zentralle Log-Datei:
C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\IntuneManagementExtension.log
Ich öffne die Datei meistens mit CMTrace oder Notepad++ und suche nach:
- Skript-GUID oder -Name
ProactiveRemediation- Exit Codes (z. B. 0, 1 oder andere Fehler)
So siehst du auf einen Blick, was ausgeführt wurde, was erkannt wurde und ob die Remediation ausgelöst wurde.
Ausführungsstatus in der Registry prüfen
Jede Skriptausführung wird zudem in der Registry protokolliert. Die lokalen Status- und Assignment-Informationen findest du hier:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IntuneManagementExtension\SideCarPolicies\Scripts
Das hilft dir zu überprüfen, ob das Skript auf dem Gerät bereitgestellt und verarbeitet wurde.
Skript-Output und Ergebnisse abrufen
Wenn dein Skript Werte in die Registry schreibt oder Output-Reporting nutzt, findest du diese hier:
HKLM:\SOFTWARE\Microsoft\IntuneManagementExtension\SideCarPolicies\Scripts\Reports\
Mit folgendem Skript kannst du diesen Output auslesen:
$User_id = "00000000-0000-0000-0000-000000000000"
$Script_id = "xxx"
$RegPath = "HKLM:\SOFTWARE\Microsoft\IntuneManagementExtension\SideCarPolicies\Scripts\Reports\$User_id\$Script_id\Result"
Get-ItemProperty -Path $RegPath | Select-Object -ExpandProperty Result | ConvertFrom-Json | fl *Output*
Ersetze $Script_id durch die Action-ID des Skripts. Du findest diese in der URL des Intune Admin Centers, wenn du das Remediation-Skript bearbeitest.

Möchtest du die Outputs aller Remediations auf einen Blick sehen?
Hier ist die Lösung:
$Users_all = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\IntuneManagementExtension\SideCarPolicies\Scripts\Reports"
foreach($User in $Users_all){
$User.PSChildName
$Remediations_all = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\IntuneManagementExtension\SideCarPolicies\Scripts\Reports\$($User.PSChildName)"
foreach($Remediation in $Remediations_all){
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\IntuneManagementExtension\SideCarPolicies\Scripts\Reports\$($User.PSChildName)\$($Remediation.PSChildName)\Result" | Select-Object -ExpandProperty Result | ConvertFrom-Json | fl *Output*
}
}
Besseres Logging einbauen
Beim Erstellen deiner Skripte empfehle ich dir, mit Start-Transcript ein lokales Log zu erzeugen:
Start-Transcript -Path "C:\...\remediation_debug.log"
# script logic
Stop-Transcript
So verstehst du einfacher, was passiert, wenn das Skript als Teil des verwalteten Tasks läuft.
Zusammenfassung
Das lokale Troubleshooting von Intune Proactive Remediation Skripten spart Zeit und reduziert Unsicherheit. Du erhältst volle Einsicht in Skriptdateien, Logs und Registry-Daten. Mit diesem Ansatz kann ich Skripte testen, debuggen und optimieren, bevor ich sie in die Produktion push.
