0

現在、次のスクリプトを使用して、マシンで使用可能な COM オブジェクトを一覧表示しています。

$path = "REGISTRY::HKEY_CLASSES_ROOT\CLSID\*\PROGID"
foreach ($obj in dir $path) {
    write-host $obj.GetValue("")
}

別の Web サイトで、InProcServer32 キーの存在は、オブジェクトが 64 ビット互換であることの証拠であると読みました。

では、powershell を使用して、各 COM オブジェクトの InProcServer32 の存在をどのように判断できますか? それが32ビットか64ビットかを確立する正しい方法でさえある場合。

4

1 に答える 1

1

それが 64 ビットの互換性を判断する方法かどうかはわかりませんが、regkey が存在するかどうかを確認する方法は、Test-Path を使用することです。

PS> Test-Path HKLM:\SOFTWARE
True
PS> Test-Path HKLM:\SOFTWARE2
False

あなたの場合:

$path = "REGISTRY::HKEY_CLASSES_ROOT\CLSID\*\PROGID" 
foreach ($obj in dir $path) { 
    write-host $obj.GetValue("") 
    if (Test-Path (Join-Path $obj.PSParentPath 'InprocServer32'))
    {
        # key exists
    }
} 
于 2010-05-19T14:53:33.290 に答える