Windowsを起動すると、いつもより時間をかけて立ち上がったと思ったら「アカウントにサインインできません」と出て、データが空の一時プロファイルでしかサインインできないトラブルです。
今回は、ユーザー名はそのまま、データが残っているユーザーフォルダーを変えることなく、壊れたと推測されるNTUSER.DATファイルを作り直して立ち上げることが出来た成功例のご紹介です。
毎回一時プロファイルでサインインする状況
まずは、トラブル概要のご紹介です。
ある日突然、PCを立ち上げると「アカウントにサインインできません」とメッセージが出て、この画面を閉じると「一時プロファイルでサインインしています」という通知が数秒でる状況です。
データが空になったように見える
この状況で問題なのがデスクトップやドキュメントに保存していた個人データが全部空っぽのように見えることです。びっくりしてしまいます。
しかし、あわてずにC:\Users フォルダーを開いて見てみると元々のユーザー名のフォルダーの中には個人データが全部残っています。今サインインしているのは、TEMP.[PC名].000X という一時プロファイル用のユーザーフォルダーを利用しているためデータが消えたように見えているだけです。
まず試すこと
言い方は変ですが、Windowsでよくあるトラブルのためネットで検索するといろいろな対処方法が出ています。当ブログでも何度か同じ現象の記事を書いています。
マイクロソフトのサイトでもそうですが、いろいろな手順の中には個人データが消えることには触れずにユーザープロファイルを作り直す手順が載っていたりするので注意です。
個人データのバックアップを取る
まずは念のために元のユーザーフォルダーに個人データが残っているのを確認したら、外部メディア(外付けHDDやUSBメモリー)にバックアップを取ります。該当するユーザー名のフォルダー丸ごとバックアップが望ましいですが、保存メディアの容量によっては必要なデータを選別してバックアップを行います。
今回ご紹介する方法が上手くいけば、バックアップしたデータを使うことはないですが、手順を間違えると本当にデータが消える場合があるので保険のためバックアップは必須です。
絶対にダメなのが現在のデスクトップやドキュメントなどにデータを移動することです。これを行うと再起動でデータが全部消えてしまいます。
システムの復元を試す
このトラブルは、正常だった時の復元ポイントに戻すことができれば直る可能性が高いです。まずはシステムの復元を試すべきです。
ただし、システムの復元が失敗したり、復元ポイントが無かったり、そもそもシステムの復元が有効になっていなかったりする場合も多いです。
レジストリでプロファイルの修復を試す
Windows7当時のマイクロソフトサポートのページにあるレジストリー操作でプロファイルの修復を試す方法です。
下記ページの方法1を試します。このあとご紹介する方法もここと同じ箇所のレジストリーを操作するので、一度試しておくと理解が早いです。
方法2はリンクが切れています。このあとご紹介する方法はこれに近いです。
方法3を行うと個人データが全消去さるので行いません。(最終手段です。)
上手く行った手順
前置きが長くなってしまいましたが、ようやく今回上手く行った手順のご紹介です。わりと上級者向けの方法になります。上記のマイクロソフト手順を一度実行している前提で説明をしています。
レジストリの該当Profileリストを削除
レジストリエディタ(regedit.exe)を起動して、下記のレジストリサブキーまで展開していきます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
該当ユーザーのプロファイルリストである、S-1-5 で始まる長い名前のフォルダーと、同じ名前で最後に.bakが付いているフォルダーの両方を削除します。
PCを再起動
レジストリーエディタを終了したら、PCを再起動します。
そうすると今度は一時プロファイルではない元のユーザー名のアカウントでサインインできるようになります。ただし個人データは空っぽのままです。
C:\Users フォルダーを開いて見てみると元々のユーザー名のフォルダーではなく、[ユーザー名].[PC名] というユーザーフォルダーが作成されています。
NTUSER***ファイルを入れ替え
手順を先に説明しますが、作成されたた[ユーザー名].[PC名] フォルダー中にあるNTUSERから始まる7つのファイルをコピーして、元の[ユーザー名] フォルダーのNTUSERから始まる7つのファイルを削除してからペーストして入れ替えます。
だだし、現在サインインしている[ユーザー名].[PC名] フォルダーのNTUSER.DATなどは使用中のためコピーも移動もできません。方法としては二つあります。
- Linuxなど外部メディアからPCを起動させて、ファイルの入れ替えを行う。
- Windowsの管理者アカウントを追加して、そのユーザーでサインインしてファイルの入れ替えを行う。
おすすめなのはLinuxで起動する方法です。Windowsの別アカウントだと、他のユーザーフォルダーを開くのにアクセス許可を再設定するため、ファイルが多いユーザーフォルダーだと予想外に時間がかかります。
Linuxで起動する場合は、Windowsを完全にシャットダウンさせておかないとディスクがロックされているので読み込み専用でしか開けなくなるので注意です。必ずWindowsをShiftキーを押しながらシャットダウンさせます。
(追記)Linuxで作業する場合も、Windowsの別管理者アカウントは作成しておいたほうが良いです。修正中のアカウントで起動できなくなった場合を考えると、もうひとつアカウントがあった方が安全です。
ProfileImagePath エントリを書き換え
再度WindowsでPCを起動したら、もう一度レジストリエディタを開きます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
先ほど削除したS-1-5 で始まる長い名前のフォルダーが再作成されているので、そのフォルダーをクリックし、詳細ウィンドウで ProfileImagePath エントリの値をC:\Users\[ユーザー名].[PC名] から, C:\Users\[ユーザー名] に書き換えます。
手順は以上です。このあとPCを再起動させて起動できるかテストします。初回の起動にはいつも以上に時間をかけて立ち上がるかもしれません。
再設定が必要な項目
上手くデスクトップまで立ち上がったら、個人データは全部残ったままになっているはずです。ただし、完全に元の状態ではありません。
いくつか再設定が必要なアプリケーションがありました。特にメールソフトとクラウドソフトは再設定が必要でした。
リストで上げると多くなりますが、これらを全部使っている人は少ないでしょう。それ以外は、ほぼそのまま復元できたと言えそうです。
- Outlook2016は、アカウントの再設定が必要でした。pstファイルは残っているのでそれをデータファイルに指定してアカウントを再作成します。
- Windows Liveメールは、過去データがすべて復元されたアイテムに移動している。
- One Driveはアカウントの再設定
- Dropboxはサインインし直し
- Googleのバックアップと同期(backup and sync)は再設定しないと常駐せず。
- タスクバーとスタートのピン留めしていたアプリいくつか再登録
- デスクトップに出していたアプリのショートカットいくつか再登録
別アカウント作成との比較
今回の手順でなくても、別ユーザー名の管理者アカウントを作成して、そこに必要なユーザーデータすべてを移動する方法もあります。
しかし、それだとユーザーデータが大容量の場合に、Cドライブの空き容量が足らなくてコピーも移動もできない可能性があります。また、Linuxブートで移動してもOne Driveフォルダーやキャッシュデータはロックがかかっていて移動できなかったりしたので、選別して移動していたら面倒です。
ということで、少量データのNTUSER*ファイルだけ入れ替えるこの方法が使える場面もあると思います。