How to Run SysPrep on Upgraded Windows

I have faced a strange error when trying to run SysPrep on the installed system, which is going to be used to create a reference image to deploy Windows 10 using System Center Configuration Manager 2012 R2. After starting SysPrep, the following error appears:

Sysprep was not able to validate your Windows installation, Review the log file at %Windows%\System32\Sysprep\Panther\setupact.log for details. After resolving the issue, use Sysprep to validate your installation again.

Let’s open the Sysprep log file setupact.log and analyze the errors.

2016-10-23 13:12:51, Error [0x0f0036] SYSPRP spopk.dll:: Sysprep will not run on an upgraded OS. You can only run Sysprep on a custom (clean) install version of Windows.

The error evidently reports that SysPrep cannot be run on the systems upgraded from previous Windows versions. It is just our case: the system has been upgraded from Windows 7 to Windows 10 Indeed, according to the article in KB828287 knowledge base: Microsoft does not support the use of Sysprep to create images of an installation that has been upgraded (SP installation is not considered to be an upgrade). SysPrep is only supported in clean installations. Whether you have to reinstall the system from scratch?

I managed to find an simple solution. Using Process Monitor with the filter by process sysprep.exe and having compared a clean and upgraded versions of Windows 10, I could get the list of register keys checked by SysPrep when being started that allow to determine whether the system is clean or upgraded. Here is what you have to do to delete the mark of the upgraded system for Windows 10 checked by SysPrep (it also works in other Windows versions):

Important. The described solution is not officially supported by Microsoft and does not guarantee that you will not have any problems with the system image you obtained in this way.

Open the Registry Editor (regedit.exe)

Go to HKEY_LOCAL_MACHINE\SYSTEM\Setup\

Delete the Upgrade key (if exist) and the registry value with the name Upgrade

In HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus keyspecify the CleanupState value equal to 7

Restart your computer and try to run SysPrep again

Tip. In case of Windows 10, to make SysPrep work I had to delete all non-standard Modern applications separately (not in the provision mode) installed from Microsoft Store by the system users.

You can do it by deleting all user profiles (if applicable), completely uninstalling all Metro applications for all users (not recommended) or by uninstalling such applications manually. The last option can be done like that:

Get the list of all installed Metro applications in all user profiles (we need only packages with the Installed status):Get-AppxPackage -AllUser | Format-List -Property PackageFullName,PackageUserInformation

And uninstall them one by one as follows: Remove-AppxPackage -Package <packagefullname>. Or like this: Remove-AppxProvisionedPackage -Online -PackageName <packagefullname>