In-place Windows upgrades are never a good idea. Sure, if you reinstall from scratch you have to reinstall applications, but at least they are installed on something known and supportable. In addition, if you manage more than a few PCs, it’s probably worth creating an automated installation, although that may cause some issues where applications require activation.
Regardless of whether it’s a good idea or not, it is possible to upgrade to Windows 7 RTM from previous releases. XP users have two paths: a two step migration via Vista, which will keep the applications; or what effectively amounts to an archive and reinstall, as described by Scott Hanselman. [Update: From Vista, follow Tim Andersen’s post on in-place upgrade adventures with Windows 7.]
For those of us who were running pre-release versions of Windows 7, it is possible to upgrade to the RTM
(Tim Andersen wrote about it recently) but Windows does put a few blockers in the way.
Next, although the install.wim file on the DVD includes several editions of Windows, setup no longer presents a list to choose from and will refuse to continue if there is a version mismatch between the installed version (typically ultimate edition, for a release candidate or beta installation) and the RTM media (even if it’s enterprise edition – which has the same features and functionality). Some comments over at 4sysops suggest editing or removing the \sources\ei.cfg file but that didn’t work out for me (this is how it should work). I had to restart my upgrade using the correct media and, this time, Windows didn’t like the fact that I had profiles stored on another drive. Even changing the ProfilesDirectory in HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList was not enough. I had to completely remove the profile and then restore it from backup after the installation was completed.
Furthermore, because my backup was taken whilst logged in as the user whose profile I needed to restore, Windows refused to load it (even after I restored the associated registry settings) and logged on with a temporary profile each time, regardless of me renaming the registry key to remove the .bak from the end of the SID and changing the state from 0x00008000 (backup) to 0x00000000. In effect, the profile was there, including all of my data, but it could not be loaded.
So, in short, you can carry out an in-place upgrade to Windows 7 from a previous version but do you really want to? It’s potentially a lot of hassle for limited reward, particularly as the resulting machine is bound to suffer from various nuances where things have changed at each release. For me, this was just an experiment and tomorrow my machine will be rebuilt from a standard image that, if we get it right, should deliver a reliable end user experience for years to come.
[Update 22:36: Windows7Hacker’s post confirms I did the right thing to work around the profile issue. I just didn’t have a good enough profile backup… and I didn’t actually need to delete the profile either – I could have just changed the ProfileImagePath in the registry.]
[Update 11 August 2009: corrected the part where I suggested Tim Andersen’s post relates to Windows 7 RC to RTM upgrades. Sorry Tim.]