I’ve been messing around with the MS Deployment Image Servicing and Management (DISM) tool since it made its debut along with Windows 8, when it replaced the ImageX tool built into previous Windows versions, as well as the Windows Package Manager (Pkgmgr.exe), PEimg, and intlcfg tools likewise included in older versions of the Windows Deployment Toolkit. For modern Windows versions — meaning Windows 8, 8.1, and 10 — DISM is a kind of master or skeleton key into the whole world of Windows image creation, management, and repair for versions of Windows from 7 through 10 (though DISM post-dates Windows 7, it still knows how to work with it anyway).
As much as I’ve worked with DISM, one little gotcha has hampered my use of the utility, especially when working with the all-important command that allows the tool to fix a corrupted WinSXS (Windows Component Store) directory, as will sometimes happen to Windows installations. The general syntax for this command takes the form:
DISM /online /cleanup-image /restorehealth
But when the WinSXS store gets corrupted, it becomes necessary to point the tool at a different respository for the files that DISM will copy to replace any corrupted files that it finds. This is also where things can get interesting, because the syntax for an additional parameter — named /source is perhaps a bit trickier than it looks. Through trial and error, if using a WIM (Windows Image) file as your source (as is common when working from an ISO for the underlying OS), I learned that one must use this syntax to properly point to the source files involved:
DISM ... /source:WIM:path&filespec:1</p
I’m not exactly sure what the colon one (:1) at the end of the file specification is about, but the command won’t run without it. I found clues to its necessity, but not in the DISM TechNet documentation as you might expect. Rather, it was the usually helpful postings over at Windows Eight Forums on DISM and image repair that clued me in. Go figure!