使用Powershell列出可用COM对象

问题描述:

我正在使用以下脚本列出我的机器上可用的COM对象。使用Powershell列出可用COM对象

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

我在另一个网站上看到,InProcServer32密钥的存在证明对象是64位兼容的。

所以使用PowerShell如何确定每个COM对象的InProcServer32的存在?如果这是确定是32位还是64位的正确方法。

我不知道这是否是确定64位兼容的方式,但以查看是否存在注册表项来的方式是使用测试的路径例如:

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 
    } 
}