Latest posts by Wolfgang Sommergut (see all)
- Migrate a WSUS database from WID to SQL Server - Mon, Jan 13 2020
- Audit changes in the Windows registry - Wed, Jan 8 2020
- Move WSUS database and content (updates) to a different drive or folder - Wed, Dec 11 2019
The behavior described above is not a setup crash. Rather, in this case, it has encountered hardware or software components that prevent a successful upgrade. However, it does not inform you why the update has failed. Windows 10 is content to roll back to the old version, giving just a general hint.
Multiple scattered log files ^
Now you should search for the cause(s) of the failure in the restored version. However, Windows Update writes a whole series of log files in different formats in several places, which makes it difficult to analyze the failed upgrade.
At first glance, the PowerShell Get-WindowsUpdateLog cmdlet promises a remedy here because it merges the binary .etl files from various directories into one readable log file.
However, it quickly becomes apparent that most users cannot understand its entries and that they are more likely to be useful to Microsoft support. You might not find any hints on the reason for the failed upgrade here.
Searching for compatibility issues ^
More promising are the logs in this directory:
Here you will find several files in different formats too, including some in XML. Their names start with "CompatData" and also contain the date and time, so you can connect them to the failed upgrade attempt.
Among other things, the setup records in these files whether and which compatibility problems have occurred. Instead of opening each file and looking for a clue, it's easier to perform this task with PowerShell:
Get-ChildItem CompatData*.xml | Select-String 'BlockMigration="True"'
You could also use the Microsoft tool SetupDiag for the log analysis, which generates relatively extensive reports and also displays successfully completed operations.
In our example, we see two occurrences of compatibility issues, referring to the files "oem45.inf" and "oem46.inf." The next step is to examine these files to find out which components are causing problems. To do this, change the directory to %systemroot%\inf.
Get blocking features from .inf files ^
As you can see from the screenshots, two well-known culprits often fail the upgrade from Windows 10, namely "Microsoft XPS Document Writer" and "Microsoft Print To PDF."
Therefore, you have to remove these two optional features before the next feature update attempt. You can do this via the Control Panel or by using PowerShell:
Disable-WindowsOptionalFeature -Online -FeatureName Printing-PrintToPDFServices-Features
Disable-WindowsOptionalFeature -Online -FeatureName Printing-XPSServices-Features
Further steps for the next update attempt ^
However, it may be that Windows Update has already started the next attempt in the background while you were searching for the error. If so, it is probably too late to remove the update blockers, and the upgrade will fail again. Therefore, you should abort and restart it right away.
In this case, you should also remove all USB drives for safety's sake, as they have repeatedly led to upgrade cancellation in the past. After the successful installation of the new Windows version, you can attach them again, and you can also reactivate the two optional features mentioned above.
PC does not boot after rollback ^
The failure of a feature update often leads to another problem that stands in the way of troubleshooting. An incomplete rollback to the old version then prevents the computer from restarting.
Instead, a blue screen appears with the title Restore:
Your PC needs to be repaired.
A required device isn't connected or can't be accessed.
Error Code: 0xc0000225
The recommendation to press the Enter or F8 key to retry or recall the startup settings will not work. Only pressing the Esc key will open the UEFI setup.
By changing the boot order, the computer can usually function again.
Here it usually helps to change the boot device order because Windows Setup apparently changes the entries in the boot manager and does not reset them during rollback.