こんにちは、阿久津です。前回はWindows Vistaのフォルダ内容を自動的に判別する「Automatic Folder Type Discovery」機能を無効にするチューニングを紹介しました。そもそもWindows OSでは各フォルダの設定を、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Bagsキーに格納し、同じフォルダを再度表示するときには、同キー内の情報を取得。そして表示位置や表示形式を再現しています。しかしWindows Vistaでは、前述のキーも使用しますが、HKEY_CURRENT_USER \ Software \ Classes \ Local Settings \ Software \ Microsoft \ Windows \ Shell \ Bagsを併用し、各情報を格納します(図1~2)。

図1: 各フォルダ情報はHKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Bagsキーに格納され、ここからフォルダの表示情報を読み出しています。Windows XPとの互換性を維持するために残されたのでしょう

図2: Windows VistaではHKEY_CURRENT_USER \ Software \ Classes \ Local Settings \ Software \ Microsoft \ Windows \ Shell \ Bagsも使用されます

各フォルダのカスタマイズ結果をレジストリ内に格納する数は決まっており、Windows XPの既定値は400フォルダでしたが、Windows Vistaの既定値は5000フォルダに拡張されました。この数値は、DWORD値「BagMRU Size」で設定されており、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ ShellNoRoamキーや同Shellキーだけでなく、HKEY_CURRENT_USER \ Software \ Classes \ Local Settings \ Software \ Microsoft \ Windows \ Shellキーも対象となります。

しかし、レジストリの動きをProcess Monitorで観察しますと、HKEY_CURRENT_USER \ Software \ Classes \ Local Settings \ Software \ Microsoft \ Windows \ Shellキー上にあるべきのDWORD値「BagMRU Size」が存在せず、エラーになっていることが確認できました(図3)。

図3: HKEY_CURRENT_USER \ Software \ Classes \ Local Settings \ Software \ Microsoft \ Windows \ Shell \ Bagsにあるべき「BagMRU Size」が存在せず、エラーとなっています

Windows XP時代は「BagMRU Size」の数値を増大させることで利便性を向上させ、数値を縮小することでパフォーマンスを改善しました。Windows Vistaではフォルダが正しく表示されない、というトラブルに見舞われることがあるため、数値を縮小して各フォルダの記録情報を最小限にするチューニングを行ないます。

  1. <スタート>メニュー→クイック検索に「regedit」と入力して[Enter]キーを押す。
  2. HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shellまでキーをたどって開く。
  3. BagMRUキーを右クリックし、<削除>を選択。確認をうながすメッセージが表示されたら<はい>ボタンをクリックする
  4. ステップ3と同様の手順でBagsキーも削除する
  5. ~Shellキーを開き、右ペインにあるDWORD値「BagMRU Size」をダブルクリック。
  6. 値のデータを「1」に書き換えてから<OK>ボタンをクリック。
  7. ~ShellNoRoamキーを開き、ステップ5~6を参考にDWORD値「BagMRU Size」のデータ値を「1」に書き換える。
  8. ルートからHKEY_CURRENT_USER \ Software \ Classes \ Local Settings \ Software \ Microsoft \ Windows\Shellまでキーをたどって開く。
  9. ステップ3~4を参考に、BagsキーおよびBagMRUキーを削除する。
  10. Shellキーを開き、右ペインの何もないところを右クリック。メニューから<新規>→<DWORD値>と選択し、名前を「BagMRU Size」に変更する。
  11. DWORD値「BagMRU Size」をダブルクリックし、値のデータを「1」に書き換えてから<OK>ボタンをクリック。
  12. レジストリエディタを終了し、Windows Vistaを再起動する。
※直接入力の際は、バックスラッシュ(\)前後のスペースを取り除いてください。

これで設定完了です。再ログオン時にデスクトップの情報がレジストリに格納され、それ以外のフォルダに関する設定も変更可能ですが、レジストリに格納されなくなります。そのため、ログオン時に以前のフォルダを開く設定を行なっている場合は、設定を変更してください(図4)。

図4: コントロールパネルなどから「フォルダオプション」を起動し、<表示>タブにある<ログオン時に以前のフォルダウィンドウを表示する>のチェックを外してから<OK>ボタンをクリックします

蛇足ですが、DWORD値「BagMRU Size」のデータ値を「0」にしますと、フォルダ情報を格納できないためか、エクスプローラがハングアップしますので、データ値は1以上にしてください。

それでは、また次号でお会いしましょう。

阿久津良和(Cactus)