我目前正在使用以下脚本列出我机器上的可用COM对象。
$path = "REGISTRY::HKEY_CLASSES_ROOT\CLSID\*\PROGID"
foreach ($obj in dir $path) {
write-host $obj.GetValue("")
}
我在另一个网站上读到,InProcServer32密钥的存在证明该对象是64位兼容的。
所以使用powershell如何为每个COM对象确定InProcServer32的存在?如果这是确定它是32位还是64位的正确方法。
答案 0 :(得分: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
}
}