2011年11月26日土曜日

互換性の設定を消去

互換性の設定画面

互換性の設定はファイルやファイルシステムではなく、レジストリに記憶されています。

これらは互換性の設定を解除すれば削除されますが、それをせずにアンインストールしてしまった場合はレジストリに残ったままになり、蓄積されていきます。


次のキーのにパスを含んで記載されていますので、無効なものは削除できます。

ユーザーごと
HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

全てのユーザー
HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

プログラムの互換性アシスタントの挙動

このプログラムは正しくインストールされなかった可能性があります

  • 推奨の設定を使用して再インストールする

  • このプログラムは正しくインストールされました

どちらを選択してもチェック済という意味で以下に記録されます。

HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted

これも無効な値は削除できます。設定は前述のキー以下に格納されます。

厄介なのは、ここで再インストールを選択してしまった場合。上の 2 つに加えてタスクが追加されます。

%SystemRoot%\System32\Tasks

タスク スケジューラから確認できます。(taskschd.msc)

タスク スケジューラ

一番上の階層の名前が ID になっているものです。

トリガー

操作タブから、プログラム名を確認できます。pcalua.exe はプログラムの互換性アシスタントです。

プログラムの開始

これも存在しないものは削除できます。

個人用に使っている、レジストリのクリーンアップ用ファイルです。

キーごと削除して互換性の設定を全て破棄しています。互換性の設定を行うとキーは再度作成されます。

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]

[-HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted]

初期の頃の Windows 7 は、やたらプログラムの互換性アシスタントのダイアログが出ていましたが、その後のパッチで出現頻度は減っていきました。

リリース直後から長く使っていると、必要がないのに互換性の設定がなされている可能性もあります。