【问题标题】:Listing available COM Objects with Powershell使用 Powershell 列出可用的 COM 对象
【发布时间】:2011-02-21 07:12:59
【问题描述】:

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

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

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

那么使用 powershell 如何确定每个 COM 对象是否存在 InProcServer32?如果这甚至是确定它是 32 位还是 64 位的正确方法。

【问题讨论】:

    标签: powershell com-object


    【解决方案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
        }
    } 
    

    【讨论】:

      猜你喜欢
      • 2019-10-19
      • 2011-07-25
      • 2017-06-16
      • 2013-12-13
      • 2020-08-26
      • 2016-07-17
      • 1970-01-01
      • 2020-06-17
      • 2013-08-21
      相关资源
      最近更新 更多