セットアップを実行すると、Microsoft Data Access Components 2.0 セットアップの画面が表示されファイルがコピーされていたが、いつまで経ってもセットアップが終了しない。この画面のまま先に進まない。ひょっとするとハングアップしたかも。
ODBC Driver Configuration Program(32ビット)がCPUを半分使用している。私のPCのCPUは2コアでほぼ100%の負荷。ループしているかな。
今回のアプリは自分で開発したものではないのでソースはなく調べるのが大変かなと思いながらも、マイクロソフトのSysinternalsSuiteに含まれているProcmon.exeで調べてみると、odbcconf.exeがレジストリのI/O処理でループしている。
Procmon.exeに表示された情報で関係していそうな情報。
18:10:26.2519258 odbcconf.exe 4564 RegOpenKey HKCR\RDSServer.DataFactory\Clsid SUCCESS Desired Access: Maximum Allowed, Granted Access: Read
許可されたアクセス(Granted Access)が読み取りのみになっている。
odbcconf.exeに関係していそうなレジストリのキーは以下の二つ。
HKEY_CLASSES_ROOT\RDSServer.DataFactory
HKEY_CLASSES_ROOT\RDSServer.DataFactory\Clsid
これらの2つのキーに対するアクセス許可を確認すると、Administratorsグループは読み取りのみでフルコントロールは与えられていない。試しに、Administratorsグループに対してフルコントロールを与えると、その瞬間にセットアップは正常に終了した。
Procmon.exeに表示された情報で関係していそうな情報。
18:14:35.4679275 odbcconf.exe 4564 RegOpenKey HKCR\RDSServer.DataFactory\Clsid SUCCESS Desired Access: Maximum Allowed, Granted Access: Read, Write DAC
許可されたアクセス(Granted Access)にWrite DACが追加されている。
もし、Microsoft Data Access Components 2.0 セットアップが終了しない場合は、
HKEY_CLASSES_ROOT\RDSServer.DataFactory
HKEY_CLASSES_ROOT\RDSServer.DataFactory\Clsid
の2つのアクセス許可を確認してみると良いかもしれない。いつものことですが、レジストリの変更は自己責任でお願いします。当然のことながら、該当キーを変更前にバックアップは必須です。