・対象のCLSIDを調べる
(New-Object data.oledb.oledbenumerator).getElements() | Where-Object{$_.sources_description -match “ole\s?db”} | Format-List sources_name, sources_description, sources_clsid
にて確認できる。
※32bitを確認したい場合、
%systemroot%\syswow64\windowspowershell\v1.0\powershell.exe
のPowerShellを起動する。
※CLSIDは
dee35070-506b-11cf-b1aa-00aa00b8de95
のような感じになる。
※.UDLの空ファイルを作成し、クリックでもOLE DBは確認できる。CLSIDは調べられないが、接続テストも可能。
・レジストリのキー削除
レジストリエディターを起動(regedit)
HKEY_LOCAL_MACHINE
以下でCLSIDを検索する。
HKEY_LOCAL_MACHINE\[WOW6432Node]\CLSID\xxx
見つかった該当のキーを削除する。※32bitの場合WOW6432Node
そのままでは削除できないため、
右クリック>アクセス許可>詳細設定
所有者を自分に変更。
右クリック>アクセス許可>追加
自分を追加しフルコントロールへ。
サブキーそれぞれ実施が必要。
これで削除完了。
***
・OLE DBの実体(dllファイル)のパスを調べる場合
HKEY_LOCAL_MACHINE\[WOW6432Node]\CLSID\xxx\InprocServer32
以下にdllのパスが入っている。
COMコンポーネント一覧、登録解除
・COM一覧
Get-WmiObject Win32_ClassicCOMClassSetting
Get-WmiObject Win32_ClassicCOMClass
・DCOM一覧
Get-WmiObject Win32_DCOMApplication
・登録解除
regsvr32 /u “C:\Windows\SysWOW64\xxx.dll”
※32bitの場合
C:\Windows\SysWOW64\regsvr32 /u “C:\Windows\SysWOW64\xxx.dll”