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