How To
Summary
• Windows Autopatch does not deliver OOB updates. OOB updates are only released via the Microsoft Update Catalog.
• Administrators must download the OOB update manually and deploy it as a Win32 app in Microsoft Intune.
• General guidance:
o Deploy the OOB update using the Intune Win32 app method.
o Resume Autopatch updates once OOB deployment is complete.
Note: This process is outside the scope of the Windows Autopatch service. The instructions below provide a practical overview; for the most current details, refer to Microsoft documentation.
Objective
Provide a concise, end‑to‑end procedure to deploy a Microsoft OOB update via Intune Win32 App packaging and assignment, including install/uninstall commands and detection methods. For advanced automation (e.g., PowerShell orchestration, phased rings, or dynamic assignments), open a support request with Microsoft Intune.
Environment
- Windows 11
- Windows Server (supported versions)
- Microsoft Intune
- Microsoft Autopatch
Steps
Prerequisites
- Intune admin permissions to create and assign Windows app (Win32).
- Local .msu file for the target OOB update.
- (Optional) A PowerShell install script for cleaner control and logging.
- Maintenance window/restart plan appropriate for your organization.
Steps
1) Download the OOB Update (.msu)
- Go to the Microsoft Update Catalog.
- Locate and download the required OOB update .msu for your OS (Windows 10/11, Server variants).
- Save to a working folder (e.g., C:\OOB\Package).

2. Prepare the .msu File as a Win32 App (.intunewin)
You must package the .msu using the Microsoft Win32 Content Prep Tool (IntuneWinAppUtil.exe).
Steps:
- Download the Win32 Content Prep Tool from Microsoft (IntuneWinAppUtil.exe).

- Place the .msu (and optionally a PowerShell install script) in a source folder (e.g., C:\OOB\Source).
- Run the tool with explicit paths, for example:
IntuneWinAppUtil.exe -c "C:\OOB\Source" -s "OOBInstall.ps1" -o "C:\OOB\Output"
Where:
- -c = source folder containing your files (the .msu and/or script)
- -s = setup file (the entry point the app will run; use your script or the .msu)
- -o = output folder where the .intunewin package will be created
If you omit parameters, the tool will interactively prompt for them.
3) (Recommended) Create a PowerShell Install Script
Using a script gives you better control (waiting, logging, return codes).
Script example: OOBInstall.ps1:
# OOBInstall.ps1
param(
[string]$MsuName = "Windows10.0-KBXXXXXXX-x64.msu" # Replace with the real KB file
)
# Ensure the script runs from its directory
Set-Location -Path (Split-Path -Path $PSCommandPath -Parent)
# Install the MSU silently and wait for completion
$arguments = "$MsuName /quiet /norestart"
$process = Start-Process -FilePath "wusa.exe" -ArgumentList $arguments -Wait -PassThru
# WUSA commonly returns 0 (success), 3010 (success with restart required)
if ($process.ExitCode -in 0, 3010) {
exit 0
} else {
Write-Error "WUSA failed with exit code $($process.ExitCode)"
exit $process.ExitCode
}
Why Start-Process -Wait? It ensures Intune properly tracks completion before evaluating detection rules.
Package this script alongside the .msu, and make it your setup file in IntuneWinAppUtil.exe.
Create the Win32 App in Intune
- Sign in to Intune admin center.
- Go to Apps → All apps → Add → App type: Windows app (Win32).
- Select app package file and upload the .intunewin created earlier.
- App information: Fill Name, Description, Publisher, Category, etc.
Program → Install command (choose one):
- If using the script (recommended):
- powershell.exe -ExecutionPolicy Bypass -File .\OOBInstall.ps1
- Direct MSU (no script):
- wusa.exe .\Windows10.0-KBXXXXXXX-x64.msu /quiet /norestart
Program → Uninstall command: You’ll need the PackageName. You can discover it with:
dism /online /get-packages | findstr KBXXXXXXX
Then remove it:
dism /online /remove-package /PackageName:<ExactPackageName> /Quiet /NoRestart
Note: Not all OOB updates are designed to be easily removable. Validate the rollback plan in a pilot first.
Requirements:
OS architecture/version as needed.
5) Set Detection Rules
Choose one detection approach to confirm the update is installed.
Option A — PowerShell: Check HotFix
# Returns exit code 0 if found (installed), non-zero otherwise
$kb = "KBXXXXXXX" # Replace with the actual KB
if (Get-HotFix -Id $kb -ErrorAction SilentlyContinue) { exit 0 } else { exit 1 }
Option B — Registry (CBS Packages)
- Path pattern:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\<PackageID> - The <PackageID> typically starts with Package_for_KBXXXXXXX~...
- CurrentState indicates status; installed is commonly 112.

For example, detect existence of the package key with CurrentState = 112.
Note: Exact package names/values vary per KB and OS build. Confirm in your pilot devices.
6) Assign the App to Device Groups
- Go to Assignments.
- Target:
- Pilot group first (recommended), then
- All affected devices.
- Use Required for automatic installation.
Consider maintenance windows and restart behavior. OOB updates often require a reboot to complete; whether you allow immediate restart depends on your change policy.
7) Monitor Deployment
- Intune Admin Center → Apps → (Your app) → Monitor
- Track Install status, Failures, and Pending.
- Drill into error codes to troubleshoot (wusa/dism returns, detection rule mismatches, content distribution).
Once deployment completes and your validation passes, resume Autopatch updates as normal.
Additional Information
Notes & Best Practices
- Architecture & OS versioning: Ensure the .msu matches device architecture (x64/Arm64) and OS build.
- Servicing Stack: Some updates require a minimum Servicing Stack Update (SSU) level. Validate prerequisites listed on the Update Catalog page.
- Reboots: Many OOB updates return 3010 (restart required). Plan compliance/restart policies accordingly.
- Logging: If you use a script, write logs to a known path for troubleshooting (e.g., C:\ProgramData\OOB\Logs).
- Rollback: Confirm uninstall feasibility for specific KB (some may not support removal).
- Piloting: Always validate detection logic and uninstall commands on a small set first.
Appendix: Quick Command Reference
Package MSU as Win32:
IntuneWinAppUtil.exe -c "C:\OOB\Source" -s "OOBInstall.ps1" -o "C:\OOB\Output"
Install via script:
powershell.exe -ExecutionPolicy Bypass -File .\OOBInstall.ps1
Install directly:
wusa.exe .\Windows10.0-KBXXXXXXX-x64.msu /quiet /norestart
Find PackageName for uninstall:
dism /online /get-packages | findstr KBXXXXXXX
Uninstall:
dism /online /remove-package /PackageName:<ExactPackageName> /Quiet /NoRestart
Detection (PowerShell):
$kb = "KBXXXXXXX"
if (Get-HotFix -Id $kb -ErrorAction SilentlyContinue) { exit 0 } else { exit 1 }
Detection (Registry):
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\<Package_for_KBXXXXXXX~...>
Check CurrentState = 112.
Document Location
Worldwide
Was this topic helpful?
Document Information
Modified date:
17 February 2026
UID
ibm17260963