ある日突然デスクトップアイコンが一切無くなったら。

昨日、ネットをしていると、ある時点で突然IEの挙動がおかしくなった。
動作が非常に重くなり、お気に入りが表示されるのもとても時間がかかり、お気に入りのアイコン表示が無くなり文字列だけの表示になった。
特に身に覚えのある事は何もしていない。突然のことであった。

「調子が悪いのかな?」と思い、PCを再起動してみる。
すると、ようこそ画面でユーザーを選択したあとタスクバーのクイック起動部分がはげる。しかも、デスクトップに壁紙は表示されるが、アイコン類が全く無い状態になっている。

タスクバーにマウスカーソルをやると、砂時計になる。仕方が無いので、しばらく放置したら、砂時計はなくなったが、スタートを押下するとニョキっとポップアップしたが何も表示されない。

気づかないうちにウィルスにでも感染されたのだろうか?

ということで、タスクマネージャーを立ち上げると、explorer.exeのCPU使用率が100%になっている。何かがおかしいと感じたので、とりあえずexplorer.exeを殺し、コマンドラインからIEを立ち上げてみる。これもフリーズ。次にmsconfigを起動し、起動できたので最小構成で起動するように設定して再起動してみる。しかし、最小構成でもダメだった。セーフモードでもダメであった。

次に試したのは、修復セットアップだ。
1時間ほどかけて修復セットアップを実施した。「これで大丈夫だろう」と思ったのも束の間、やはりおなじデスクトップハゲちゃぴん状態であった。

段々と打つ手が無くなって来たので頭をひねる。
とりあえず、explorer.exeを殺した状態で、CTL+ALT+DELからタスクマネージャー経由でファイルを指定して何らかの修復を試みることにする。
よし。コントロールパネルを起動させよう、という事でセカンドマシンを立ち上げてコントロールパネルの起動方法を調べる。

RUNDLL.EXE ほにゃらら・・・

でコントロールパネルを起動させようとするが、これも失敗。プロセスは立ち上がるが画面表示する前にフリーズしてしまう模様。

それでは、と、コントロールパネルを経由せずに、直接「コンピュータの管理」画面を立ち上げる。

compmgmt.msc /s

成功した!
とりあえず、イベントログ等を確認する。
特に怪しいものは無い。

次に、他のアカウントでログオンしてみることを試みようと考えた。
実は、アカウントは一つしか作っていないので、「コンピュータの管理」画面から作成しようと思いついたのだ。

新規にアカウントを作成し、権限を管理者にする。
そして現在のユーザーをタスクマネージャー経由でログオフさせ、新しいアカウントでログオンさせる。

なんと!問題なくログオンし、デスクトップが正常に表示された!!!
しかも、explorer.exeのCPU使用率が100%になっているような事は無い。

この時点で、原因がレジストリの破損に絞られた。
そこで、このユーザーでDocuments and Settings以下を覗いてみる。
フォルダオプションで、登録されている拡張子と、OSが保護しているファイルももちろん表示するように設定しなければならない。

NTUSER.dat

レジストリのファイルであるが、これが破損しているのは明らかなのでOSが自動的に隠しファイルとしてバックアップしていた

NTUSER.bak

NTUSER.dat

にリネームすればよい。
しかし、失敗するととんでもないので、とりあえずテスト用アカウントを作成し、ログオフ→新しいアカウントでログオンさせ、Documents and Settings以下を自動構築させる。再び元のアカウントに戻り、Documents and Settingsのオリジナルファイルをそのままテストアカウントにコピーする。最後に、NTUSER.datの削除とNTUSER.bakのNTUSER.datへのリネームを実施。

これで、テストユーザーでログオンすると、めでたく起動できなくなったアカウントの環境がそのまま再現された。

最後に、テストの成功を確認したので、破損したNTUSER.datを記念に?バックアップし、NTUSER.bakをNTUSER.datに置き換えてオリジナルのアカウントも修復させた。

この間3時間くらい格闘しました^^;;;;


【教訓】
レジストリのバックアップ(NTUSER.dat)はマメに取りましょう!!!
アクセサリ→システムツールにある、システムの復元→復元ポイントの作成、でも良いと思います。