This isn’t anything new but after a few quick searches on Google, I was only hitting pages using the older dism.exe instead of the PowerShell cmdlets. There are cmdlets in the dism PowerShell module which provide the same capabilities for repairing Windows 10.
Using the PowerShell cmdlets instead of dism.exe is so much faster.
Module and Cmdlets
PS C:\Windows\system32> get-command -module dism
CommandType Name Version Source
----------- ---- ------- ------
Alias Add-AppProvisionedPackage 3.0 Dism
Alias Add-ProvisionedAppPackage 3.0 Dism
Alias Add-ProvisionedAppxPackage 3.0 Dism
Alias Apply-WindowsUnattend 3.0 Dism
Alias Get-AppProvisionedPackage 3.0 Dism
Alias Get-ProvisionedAppPackage 3.0 Dism
Alias Get-ProvisionedAppxPackage 3.0 Dism
Alias Optimize-AppProvisionedPackages 3.0 Dism
Alias Optimize-ProvisionedAppPackages 3.0 Dism
Alias Optimize-ProvisionedAppxPackages 3.0 Dism
Alias Remove-AppProvisionedPackage 3.0 Dism
Alias Remove-ProvisionedAppPackage 3.0 Dism
Alias Remove-ProvisionedAppxPackage 3.0 Dism
Alias Set-AppPackageProvisionedDataFile 3.0 Dism
Alias Set-ProvisionedAppPackageDataFile 3.0 Dism
Alias Set-ProvisionedAppXDataFile 3.0 Dism
Cmdlet Add-AppxProvisionedPackage 3.0 Dism
Cmdlet Add-WindowsCapability 3.0 Dism
Cmdlet Add-WindowsDriver 3.0 Dism
Cmdlet Add-WindowsImage 3.0 Dism
Cmdlet Add-WindowsPackage 3.0 Dism
Cmdlet Clear-WindowsCorruptMountPoint 3.0 Dism
Cmdlet Disable-WindowsOptionalFeature 3.0 Dism
Cmdlet Dismount-WindowsImage 3.0 Dism
Cmdlet Enable-WindowsOptionalFeature 3.0 Dism
Cmdlet Expand-WindowsCustomDataImage 3.0 Dism
Cmdlet Expand-WindowsImage 3.0 Dism
Cmdlet Export-WindowsCapabilitySource 3.0 Dism
Cmdlet Export-WindowsDriver 3.0 Dism
Cmdlet Export-WindowsImage 3.0 Dism
Cmdlet Get-AppxProvisionedPackage 3.0 Dism
Cmdlet Get-NonRemovableAppsPolicy 3.0 Dism
Cmdlet Get-WIMBootEntry 3.0 Dism
Cmdlet Get-WindowsCapability 3.0 Dism
Cmdlet Get-WindowsDriver 3.0 Dism
Cmdlet Get-WindowsEdition 3.0 Dism
Cmdlet Get-WindowsImage 3.0 Dism
Cmdlet Get-WindowsImageContent 3.0 Dism
Cmdlet Get-WindowsOptionalFeature 3.0 Dism
Cmdlet Get-WindowsPackage 3.0 Dism
Cmdlet Get-WindowsReservedStorageState 3.0 Dism
Cmdlet Mount-WindowsImage 3.0 Dism
Cmdlet New-WindowsCustomImage 3.0 Dism
Cmdlet New-WindowsImage 3.0 Dism
Cmdlet Optimize-AppXProvisionedPackages 3.0 Dism
Cmdlet Optimize-WindowsImage 3.0 Dism
Cmdlet Remove-AppxProvisionedPackage 3.0 Dism
Cmdlet Remove-WindowsCapability 3.0 Dism
Cmdlet Remove-WindowsDriver 3.0 Dism
Cmdlet Remove-WindowsImage 3.0 Dism
Cmdlet Remove-WindowsPackage 3.0 Dism
Cmdlet Repair-WindowsImage 3.0 Dism
Cmdlet Save-WindowsImage 3.0 Dism
Cmdlet Set-AppXProvisionedDataFile 3.0 Dism
Cmdlet Set-NonRemovableAppsPolicy 3.0 Dism
Cmdlet Set-WindowsEdition 3.0 Dism
Cmdlet Set-WindowsProductKey 3.0 Dism
Cmdlet Set-WindowsReservedStorageState 3.0 Dism
Cmdlet Split-WindowsImage 3.0 Dism
Cmdlet Start-OSUninstall 3.0 Dism
Cmdlet Update-WIMBootEntry 3.0 Dism
Cmdlet Use-WindowsUnattend 3.0 Dism
You can run a check to see if Windows has been flagged for corruption by something that failed.
Repair-WindowsImage -Online -CheckHealth
With the ScanHealth parameter you can check for component store corruption.
Repair-WindowsImage -Online -ScanHealth
Then you can check the scan.
Lastly, the repair.
Repair-WindowsImage -Online -RestoreHealth
I had plenty of my own issues with Windows 10 2004 and had to perform a repair using a newly created Windows 10 iso from the Media Creation Tool. First, mount the ISO. I saved the file just to my desktop.
Mount-DiskImage -ImagePath $Env:USERPROFILE\Desktop\Windows.iso -StorageType ISO -Access ReadOnly
The ISO mounted as drive E: on my system. Then I had to retrieve the index number of Windows 10 Pro so I can specify that as the source.
PS C:\Windows\system32> Get-WindowsImage -ImagePath E:\sources\install.esd
ImageIndex : 1
ImageName : Windows 10 Home
ImageDescription : Windows 10 Home
ImageSize : 14,321,196,908 bytes
ImageIndex : 2
ImageName : Windows 10 Home N
ImageDescription : Windows 10 Home N
ImageSize : 13,561,654,913 bytes
ImageIndex : 3
ImageName : Windows 10 Home Single Language
ImageDescription : Windows 10 Home Single Language
ImageSize : 14,323,311,629 bytes
ImageIndex : 4
ImageName : Windows 10 Education
ImageDescription : Windows 10 Education
ImageSize : 14,564,034,276 bytes
ImageIndex : 5
ImageName : Windows 10 Education N
ImageDescription : Windows 10 Education N
ImageSize : 13,805,519,197 bytes
ImageIndex : 6
ImageName : Windows 10 Pro
ImageDescription : Windows 10 Pro
ImageSize : 14,564,675,087 bytes
ImageIndex : 7
ImageName : Windows 10 Pro N
ImageDescription : Windows 10 Pro N
ImageSize : 13,805,865,233 bytes
I tried to repair my Windows 10 2004 box directly from the esd file.
Repair-WindowsImage -Online -RestoreHealth -Source "esd:E:\sources\install.esd:6" -LimitAccess
Unforturnatly, after checking the dism.log file, it seems that it couldn’t use the esd file…. Bummer.
So I had to extract a wim from the esd file.
Export-WindowsImage -SourceImagePath E:\sources\install.esd -SourceIndex 6 -DestinationImagePath $Env:USERPROFILE\Desktop\install.wim -CompressionType None -CheckIntegrity
I wanted to check everything and make sure it landed ok.
Get-WindowsImage -ImagePath $Env:USERPROFILE\Desktop\install.wim
ImageIndex : 1
ImageName : Windows 10 Pro
ImageDescription : Windows 10 Pro
ImageSize : 14,564,675,087 bytes
I know this is getting redundant, but you should know how it goes. Just try, try, and try again……
Repair-WindowsImage -Online -RestoreHealth -Source "wim:$env:USERPROFILE\Desktop\install.wim:1" -LimitAccess -Verbose
The only thing left is to dismount the ISO image.
Dismount-DiskImage -ImagePath $env:USERPROFILE\Desktop\Windows.iso