regedit.exe で適当な場所 (HKEY_CURRENT_USER など) に新規キーを作る。ここでは OLD とする。OLD を選択した状態で「ファイル」→「インポート」して、ファイル種別に「レジストリハイブ」を選択すると NTUSER.dat を選択できる。

NTUSER.dat を選択する「OLD」以下を削除して置き換えるが良いか?という旨のダイアログが出るのでOKする。

これで読みこめるのでキーを探してなんとかする。

ただ以下のような問題があるのでお勧めできるかというと微妙……

この方法のやっかいなところ

Administrator アカウントでもアクセス不可能で削除もできず、アクセス許可も編集できないエントリができてしまう。どうやら SYSTEM アカウントでだけアクセスできるらしい。

sysinternals というツール集に含まれている psexec という実行ファイルを使うと SYSTEM アカウントで実行することができる。

.\PsExec64.exe -i -s c:\windows\regedit.exe

さらに SYSTEM 所有のレジストリエントリの子で TrustedInstaller が所有者になっているみたいなややこしいことなっている場合がある。この場合、所有者を SYSTEM にしつつ、SYSTEM にフルコントロールを与えると消せるようになる。とても面倒くさい。

親エントリで所有者を SYSTEM にすると (既にSYSTEMでも)「サブコンテナーとオブジェクトの所有者を置き換える」というチェックボックスがでる。これで一括でサブオブジェクトなどの所有権を置き換えできる。

  1. トップ
  2. tech
  3. 別PCのNTUSER.datから値をコピーしたいとき
▲ この日のエントリ