2

The story in a nutshell:

  • I use PuTTY a lot
  • I back up my file system regularly
  • I got tired of Win 10 freezing on me every couple of minutes, so I decided to reset my PC to factory settings (Win 8.1)
  • I forgot to export my saved PuTTY sessions from the registry
  • I found this post, which kindly suggests to load an old, backed-up NTUSER.DAT file into the HKEY_LOCAL_MACHINE within the Registry Editor
  • The DAT file was last updated in the Win 10 installation I had before resetting to factory settings with Win 8.1
  • I get the following message from the regedit:

Cannot Load PATH\TO\MY\OLD\NTUSER.DAT: Error While loading hive.

I can only make an educated guess that it fails to load the hive from this file because the file was last written from Win 10.

I should note that an older NTUSER.DAT file, which roots from the older Win 8.1 installation (before the upgrade to Win 10), does go through hive loading successfully, but it doesn't contain what I need.

Am I doomed to pay for forgetting to export the settings from the Win 10 registry?

EDIT:

This doesn't seem to be a permission issue

3
  • My guess it is an ownership issue (different SID in Windows 10 compared to Windows 8.1). Did you try taking ownership of the file? See my answer "I need to set the proper permission for this action".
    – DavidPostill
    Commented Sep 29, 2015 at 8:15
  • Thanks @DavidPostill, I actually didn't mention that, but I tried that already, and unfortunately it doesn't seem to be a permission issue. Commented Sep 29, 2015 at 8:20
  • I have the exact same issue between Windows 10 and Windows 10 "Anniversary Update" (build 1607), and for the same piece of software (PuTTY). For whatever reason, I cannot load the hive from the older version into the newer version. This problem is obnoxious and one reason (among many) for which I wish PuTTY would store its configuration elsewhere. It's the only registry fiddling I need to do when migrating from one version of Windows to another, and it's easy to forget until it's too late. Commented Feb 28, 2017 at 2:09

2 Answers 2

2

I would expect that upgrading to Windows 10 made numerous modifications to the registry. Windows 10 might also use a different on-disk file format that Windows 8.1 simply doesn't understand. (Microsoft regularly make either superficial or actual changes to internal file formats between versions. Compare SQL Server, where you can't even take a backup from a more recent version and restore it onto an older version of the same product. Upgrading is a one-way path.)

Blindly overwriting HKLM in particular with a copy from a newer version of Windows is bound to cause issues. Remember that many of the values stored in the registry are not bound by any contract to have particular meanings, and the meaning of different values can change even with a simple update, let alone a whole operating system upgrade to a new release.

Just recreate your connections from within PuTTY instead. It will almost certainly be easier, less error-prone, and less risky than trying to overwrite the registry. Even if you do manage to import the old registry file, there is no telling what odd problems might crop up in the future due to unexpected or unsupported registry values.

4
  • Thanks Michael, given that I know nothing about how the registry works, I figured this might be the case and your answer definitely seals my doubts. If only I could go back in time and slap myself for being tempted to upgrade to Win 10... Commented Sep 29, 2015 at 10:59
  • Isn't it normal to import a hive under a new keyname if you just want to grab a few values from it?
    – DavidPostill
    Commented Sep 29, 2015 at 16:36
  • @DavidPostill That's not what the OP was doing, though (at least not the way I read it). OP was trying to "load an old, backed-up NTUSER.DAT file into the HKEY_LOCAL_MACHINE within the Registry Editor" (my emphasis).
    – user
    Commented Sep 30, 2015 at 7:23
  • @MichaelKjörling Sorry, my comment wasn't very clear. When you import (load) a hive into the registry (even if is HKLM) you are asked for the name of a key (for example use old-registry). As long as you don't use the name of an existing key (like SYSTEM) you won't overwrite anything. The OP's link makes that clear.
    – DavidPostill
    Commented Sep 30, 2015 at 7:30
2

This happened to me even between two Windows 10 installs. I used NirSoft's RegFileExport to just dump the whole hive like so:

RegFileExport "path\to\exported\NTUSER.DAT" old-user.reg.txt

Definitely don't save it with a .reg extension because you don't want any chance of accidentally importing everything in it. Edit the file to keep only the header, the keys & values you need, and the blank lines between & after. Double-check it before saving it as a .reg file and importing it.

1
  • Beautiful. In my case I had to add the line Windows Registry Editor Version 5.00 followed by a blank line to get the new .reg to import without error (Source: winhelponline.com/blog/…). Commented Jul 16, 2020 at 20:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .