Windows 7 64bit のノートPCを使っているが、ある時、タスクバーに表示されている Explorer のアイコンがおかしくなった。

スタートの横にあるアイコンがそれ。 taskbar-icon-recovery1

いつもはこんな風に表示されていた。 taskbar-icon-recovery2

アイコンキャッシュの再構築をすればいいとのことで、次の手順を行った。
1. デスクトップの何もないところで右クリックし、[画面の解像度]をクリック。
2. 画面の解像度ダイアログの[詳細設定]をクリック。
3. [モニター]タブを選び、[色]を[True Color(32 ビット)]から[True Color(16 ビット)]に変更する。
4. [OK]を押し、マシンを再起動する。
5. この時点でアイコンキャッシュは再構築されている。
6. もう一度1.~2. の手順を行った後、 [モニター]タブの[色]を[True Color(32 ビット)]に戻す。
7. [OK]を押す。マシンの再起動は必要ない。

そうすると確かにアイコンは元に戻ったのだが、そのアイコンからなぜか Explorer が起動できない模様。 問題のアイコンで右クリックし、プロパティを見てみると、Explorer は環境変数 windir を参照するパスとなっている。
taskbar-icon-recovery4

念のため 環境変数 windir を調べてみる。 set コマンドを使う。ただしこの時点ではスタートメニューのコマンドプロンプトをダブルクリックしても起動に失敗するため、フルパス C:\Windows\System32\cmd を打ち込んで起動する。
C:\Windows\System32>set windir
環境変数 windir が定義されていません

定義されていなかった。。。
環境変数 windir を設定してやる。setx コマンドを使う。コマンドプロンプトを管理者で実行していない場合は以下のようなエラーが出る。
C:\Windows\System32>setx WINDIR c:\Windows /M
エラー: レジストリ パスへのアクセスが拒否されました。

コマンドプロンプトを管理者として実行し直しコマンドを打ち込む。
C:\Windows\system32>setx WINDIR c:\Windows /M

成功: 指定した値は保存されました。

これで無事、Explorer が起動するようになった。

それにしてもなぜ、windir の定義がなくなったのだろう。