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つに加えてタスクが追加されます。

C:\Windows\System32\Tasks

タスク スケジューラから確認できます。


一番上の階層の名前が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は、やたらプログラムの互換性アシスタントのダイアログが出ていましたが、 その後のパッチで出現頻度は減っていきました。

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