How to Fix Infinite Windows 10 Reinstalls After Rollback From a W7/W8 W10 "Upgrade" and Fixing Other Rollback Issues
I just had a client who unwittingly allowed W10 to "upgrade" her W7 system. She asked me to roll W10 back to W7 because W10 was so fundamentally broken and slow it was unusable. Here's my story of that rollback.
First, the W10 All Settings menu was broken right from the get go after the W10 "upgrade", so until I fixed that, it was impossible to access Update and Security to perform the rollback.
Looking at Event Viewer, every time I tried to open All Settings, SynTPEnh.exe, one of the Synaptics touchpad driver helper programs, crashed.
Figuring that was causing the problem, I removed the Synaptics touchpad item from add/remove. For good measure, while I was at it, I removed Norton, figuring that might be problematic, as well as a few other applications like icloud, quicktime, and itunes, figuring they would be restored during the rollback anyway. Turns out that was a HUGE mistake though the rollback would have been impossible without removing at least the Synaptics software.
At any rate, after rebooting after removing all of this stuff, All Settings started functioning for the first time, and I could perform the rollback with Update and Security.
And then the nightmare began.
First, rolling back did not undo the original W10 reservation, so no matter what I did, I could not keep W10 from redownloading and reattempting to reinstall. Searching the web, I found no solution, but did find MANY people nearly in tears with the same problem. Looking at how all this works, it looks to me like probably everyone who rolled back from W10 is going to find that their reservation does not get cancelled and that W10 is going to attempt to reinstall forever.
But I finally came up with a solution that I think should work to solve this problem for everyone.
1. Make a Restore Point for insurance.
2. From the Start Menu -> All Programs -> Accessories, start a cmd window in Administrative mode by right clicking Command Prompt to expose the context sensitive drop down menu and left click on "Run as Administrator". Leave the cmd window open for subsequent commands, and after each reboot, immediately reopen cmd in Administrator mode like this for subsequent commands.
3. Set automatic updates to Never check for updates: cut & paste into the open cmd window:
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v AUOptions /t REG_DWORD /d 00000001 /f
4. Disable and stop the Windows Update service (wuauserv): cut & paste into the open cmd window:
sc config wuauserv start= disabled
(note that the space after "=" is critical)
When that's done, cut and paste into the open cmd window:
net stop wuauserv
5. Now remove KB3035583: cut & paste into the open cmd window::
wusa /uninstall /kb:3035583 /norestart
Note, at this time, if you wish to go ahead and remove the recent plethora of W10 spyware that Microsoft has installed on your W7/W8 systems, you can repeat the above command as follows:
wusa /uninstall /kb:3022345 /norestart
wusa /uninstall /kb:3068708 /norestart
wusa /uninstall /kb:3075249 /norestart
wusa /uninstall /kb:3080149 /norestart
wusa /uninstall /kb:2990214 /norestart
wusa /uninstall /kb:3012973 /norestart
wusa /uninstall /kb:2952664 /norestart
wusa /uninstall /kb:2976978 /norestart
(Note that not all of these will be on all systems.)
6. Restart the system. Note that sometimes after removing the above updates, the restart can take a LONG time, sometimes even hours; be patient, it should eventually complete.
7. Now delete C:\$WINDOWS.~BT via cleanmgr ("cleanmgr" cut and pasted into the cmd window), using its Clean Up System Files option which appears after cleanmgr makes its initial (lengthy) scan. After the second (lengthy) scan from using the Clean Up System Files option, you'll see one or two of the categories showing +GB sizes, though you can pretty much safely check all the categories for deletion if you wish (though I tend to leave the setup logs and error categories alone so you can see these in Event Viewer). Good instructions for doing this can be found at addictivetips DOT com/windows-tips/what-is-the-windows-bt-folder-on-my-hard-drive/
8. Delete the C:\Windows\SoftwareDistribution folder, which btw can't be deleted without first doing Step 4. Also, don't worry: when you eventually restart Updates, SoftwareDistribution will be recreated.
Cut & paste into the cmd window:
rmdir /s /q "%SystemRoot%\SoftwareDistribution"
9. Fire up regedit from the cmd window, and search for and remove all keys named GWX (and gwx). An easy way to do this is to use the match whole string option of regedit's search box. Also the search is case insensitive so all GWX/gwx will be found in one search no matter which way you type it. There will be 4-6 instances of this key in the registry.
10. Still in regedit, clear out all keys and values from HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate EXCEPT what's shown below. If the optional ElevateNonAdmins or NoAUAsDefaultShutdownOption don't exist, ignore. If DisableOSUpgrade doesn't exist (and it probably won't) create it as a DWORD with value 1.
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"ElevateNonAdmins"=dword:00000001
"DisableOSUpgrade"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
"NoAUAsDefaultShutdownOption"=dword:00000001
11. Still in regedit, clear out all keys and values from HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade except what's shown below. If DWORD values AllowOSUpgrade or ReservationsAllowed don't exist or have values of "1", create them and/or set to "0". Set DWORD OSUpgradeState to "1". Don't worry about OSUpgradeStateTimeStamp.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade]
"AllowOSUpgrade"=dword:00000000
"ReservationsAllowed"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade\State]
"OSUpgradeState"=dword:00000001
"OSUpgradeStateTimeStamp"="2015-09-10 05:15:58"
12. Reboot
13. Set automatic updates to: Check for updates but let me choose whether to download and install them: cut & paste into the open cmd window:
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v AUOptions /t REG_DWORD /d 00000002 /f
14. Re-enable and start the Windows Update service (wuauserv): cut & paste into the open cmd window:
sc config wuauserv start= auto
(note that the space after "=" is critical)
When that's done, cut and paste into the open cmd window:
net start wuauserv
15. Now check for updates via Windows Update in Control Panel, and you should no longer see Windows 10 try to download and install, but instead normal W7/W8 updates should be working again. Be sure to uncheck KB3035583 (and any of the others you remove in Step 5), and then right click on them and select Hide, so they will never come back.
However, for me, the REAL nightmare began!
As it turns out, when you roll back from W10, the old W7/W8 registry is restored but NOT any modified and/or deleted Program files. Thus, there's a complete mismatch between the restored W7/W8 registry and any programs altered or deleted when in W10.
In my case, after the rollback to W7, icloud, Norton 360, Quicktime, iturns, Citrix and others had registry entries as if installed, but all of the installation files were missing.
Naturally, none of these would reinstall because of the (corrupted) apparent pre-existing installation, and of course they couldn't be uninstalled since the uninstaller files were missing.
So I used several tools such as zuninstaller and Windows Cleanup Utility to remove the Add/Remove objects, and manually removed other entries from HKLM/SOFTWARE. ccleaner might have been very helpful here, but I don't really trust it.
But worse, thousands of the "restored" registry entries had been corrupted in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components by having no ownership! Thus they could not be overwritten when reinstalling the programs.
I spent hours using powerful features in Registrar Registry Manager (RRM) Home Edition to find these keys and remove them in bulk. RRM was particularly vital because it could remove the no-owner keys, whereas regedit could not. Basically, once I found a bad key in Components, I did a search for all instances of that key in Components and then did a bulk delete with RRM.
Eventually, I was able to reinstall the programs I had uninstalled in W10.
Bottom line, Windows 10 itself is an absolute and total travesty, and rolling it back is likely to be a complete nightmare. Windows 10 is BY FAR the worst OS ever made by Microsoft, much worse than even W8.x, because W8.x can be made to behave pretty decently with Classic Shell and a few other tweaks, and does not have half the programs moved into the dumbed-down app mode and half the controls split beteen Control Panel and half in the dumbed-down app mode All Settings.