How they work
Detection script runs
Intune runs the detection script on the device on the configured schedule. The script checks for a specific condition.
Exit code evaluated
Exit 0— device is compliant; remediation script does not run.Exit 1(non-zero) — device is non-compliant; Intune queues the remediation script.
Remediation script runs
If the detection script returned non-zero, Intune runs the remediation script to correct the issue.
Where to find them in Intune
Navigate to Reports > Endpoint analytics > Proactive Remediations in the Microsoft Intune admin center.Available remediations
Change WinVer and OEM Info
Change WinVer and OEM Info
Customizes the WinVer branding and OEM information shown in Windows Settings and the
winver dialog. Useful for setting a consistent corporate identity on managed devices.What it detects: Checks registry entries under HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation and HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion to verify values like SupportURL, Manufacturer, RegisteredOwner, and RegisteredOrganization match expected values.What it remediates: Creates or updates each registry key-value pair to match the desired branding configuration.Clear Microsoft Apps Cache
Clear Microsoft Apps Cache
Checks and clears the Microsoft 365 Apps cache (Bug 2 — stale service status variable:The original code set
%LOCALAPPDATA%\Microsoft\Office\16.0\Wef). If Microsoft 365 apps are running when the script executes, a WPF dialog prompts the user to close them before the cache is cleared.What it detects / remediates: This is a combined detection+action script. It checks for running Microsoft 365 processes (OUTLOOK, WINWORD, EXCEL, POWERPNT, ONENOTE, etc.), prompts the user if needed, then clears the cache folder.This script is based on the built-in Microsoft proactive remediation, but with two critical bugs fixed:Bug 1 — missing $ on $ctr variable:Microsoft’s original code used ctr++ (no $), which PowerShell treats as a command name rather than a variable increment. This caused an infinite loop because $ctr never incremented past 0.Microsoft's buggy original
Corrected code
$curSvcStat once and never refreshed it inside the while loop, so even if the service started, the loop would never exit.Corrected condition
Create Local Admin Account
Create Local Admin Account
Detects whether a named local administrator account exists on the device. If it does not exist, the remediation script creates it with a no-password policy and sets
PasswordNeverExpires.What it detects: Queries Get-LocalUser to check whether the target account name exists.What it remediates: Creates the local user account using New-LocalUser and adds it to the local Administrators group.Replace
XXXX-XXXXX in both scripts with the actual local admin account name for your organization before deploying.Disable Run Command
Disable Run Command
Prevents users from accessing the Win+R Run dialog by setting a registry key in the user’s
HKCU hive under Explorer policies.What it detects: Checks whether HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoRun is set to 1.What it remediates: Creates the registry path if it doesn’t exist and sets NoRun = 1 (DWORD).This remediation targets
HKCU (current user context). Configure the Proactive Remediation to run in the logged-on user context, not the System context, for this to apply correctly.Disable Windows Fast Boot
Disable Windows Fast Boot
Detects and disables Windows Fast Boot (Hybrid Boot) by setting
HiberbootEnabled = 0 in the registry. Fast Boot can interfere with full shutdown/startup cycles required by some enterprise configurations and BIOS updates.What it detects: Reads HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power\HiberbootEnabled. Exits 0 if the value is 0 (disabled), exits 1 otherwise.What it remediates: Sets HiberbootEnabled = 0 (DWORD) using New-ItemProperty with -Force.Microsoft Store Forced Auto Update
Microsoft Store Forced Auto Update
Forces a Microsoft Store app update scan. Useful when Store apps are falling behind on updates across the fleet.What it detects: Queries the
MDM_EnterpriseModernAppManagement_AppManagement01 WMI class for LastScanError. If the value is not 0, the apps have not been successfully updated and remediation runs.What it remediates: Invokes the UpdateScanMethod on the same WMI class to trigger an immediate Store app update scan.Uninstall App — Zscaler
Uninstall App — Zscaler
Detects whether the Zscaler Client Connector is installed and silently uninstalls it. This is useful during security agent migrations or when replacing Zscaler with an alternative.What it detects: Queries
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* for a DisplayName of "Zscaler". Exits 1 (trigger remediation) if found, exits 0 if not found.What it remediates: Runs the Zscaler uninstaller at %ProgramFiles%\Zscaler\ZSAInstaller\uninstall.exe with --mode unattended.Windows Update — Remove WU Registry Entries
Windows Update — Remove WU Registry Entries
Removes stale Windows Update registry entries that can prevent Windows Autopatch (or WUfB) from taking control of update settings. These entries are often left behind after migrating away from an RMM tool or Group Policy-managed update configuration.What it detects: Checks for the existence of these three registry paths:
HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdateHKLM:\SOFTWARE\Microsoft\WindowsUpdate\UpdatePolicy\GPCache\CacheSet001\WindowsUpdateHKLM:\SOFTWARE\Microsoft\WindowsUpdate\UpdatePolicy\GPCache\CacheSet002\WindowsUpdate
-Force) and restarts the Windows Update service (wuauserv).