Skip to content

Uninstall Updates via DISM

Purpose

You may find that you have a machine that does not want to boot because of a recent Windows Update. In these cases, you only viable option sometimes may be to simply uninstall the update. You can do this via a bootable Windows installer (ISO or USB), or you can try to use the built-in recovery menu in windows.

Triggering Recovery Menu

Microsoft's own guidance is a little upsetting, because to trigger the recovery menu to appear, you generally have to let the device reach the Windows splash screen and forcefully shutdown / restart the device 3 times before it triggers. At the time of writing this, I am not aware of any other ways to trigger the menu to appear.

You can circumvent this annoying workflow by simply booting from a windows installer ISO / USB and choosing "Repair this PC"

Recovery Menu Navigation

At this point, you will be presented with a blue menu with large buttons, and one of them will say "Troubleshoot" or "Advanced", from there, you should see an option for "Command Prompt".

DISM Package Management

At this point, we need to query all of the Windows Updates that have been installed on the device, so we know what to look for to uninstall.

# (Low Effort) Determine the Drive Letter of the Offline OS
bcdedit | find "osdevice"

# (Moderate Effort) Determine the Drive Letter via DISKPART
diskpart
list vol
exit

# If the offline OS volume can be identified but lacks a drive letter, assign it one.  (e.g. D)
diskpart
list vol
select vol <n>
assign letter=D
exit

# List all Installed Packages (Oldest at Top / Newest at Bottom)
DISM /Image:D:\ /Get-Packages /Format:Table

# Uninstall Packages (Examples Given)
DISM /Image:D:\ /Remove-Package /PackageName:Package_for_RollupFix~31bf3856ad364e35~amd64~~20348.4773.1.11
DISM /Image:D:\ /Remove-Package /PackageName:Package_for_ServicingStack_4763~31bf3856ad364e35~amd64~~20348.4763.1.2

Reboot and Validate

At this point, you should be safe to close the command prompt and attempt to reboot the computer. If it still doesn't boot, you can try alternative offline repair methods such as DISM /Image:D:\ /Cleanup-Image /RestoreHealth and sfc /scannow /offbootdir=D:\ /offwindir=D:\Windows. If you have an install ISO mounted / accessible to the problematic device, you can tell DISM to exclusively use that install media to repair the OS:

  • DISM /Image:D:\ /Cleanup-Image /RestoreHealth /Source:wim:X:\sources\install.wim:1 /LimitAccess
  • DISM /Image:D:\ /Cleanup-Image /RestoreHealth /Source:esd:X:\sources\install.esd:1 /LimitAccess