使用 PowerShell 获取设备驱动程序版本和关联的 GUID?

使用 PowerShell 获取设备驱动程序版本和关联的 GUID?

现在,我得到了两个独立的物体

  1. Win32_NetworkAdapter WMI 对象
  2. Win32_PnpSignedDriver WMI 对象

在我之前的脚本中,我确保调用了单独的对象,并通过 GUID 将它们关联起来

     $mydev = Get-WmiObject -class Win32_NetworkAdapter | Where-Object {$_.pnpdeviceid -like "*VEN_0000&DEV_00AA*"}

     If ($mydev.GUID -eq $relatedobj.ParentID)
     {
         action
     }

但是 Win32_PnpSignedDriver 对象没有 GUID/ParentID/等属性。还有其他方法可以获取有关设备驱动程序的信息(特别是驱动程序版本)并获取设备的 GUID 吗?是否可以通过 Win32_PnpSignedDriver 执行此操作,但我没有看到它?

答案1

我找到了一种简单的解决方法。我不擅长注册表,所以这是我最后查看的地方;但使用它可以更轻松地找到我正在寻找的信息。

我使用与原始帖子相同的方式(使用 Win32_NetworkAdapter WMI 对象)比较网卡信息,但我将 GUID 与注册表值进行比较。可以使用以下行来获取所有网卡:

    $nicreg = Get-ChildItem -path "HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\" -ErrorAction SilentlyContinue

    foreach ($nic in $nicreg)
    {
        # do stuff with driver versions
    }

然后遍历每个 NIC,比较 $nic.GetValue("NetCfgInstanceId") 和 $mydev.GUID。通过验证 GUID 确认您正在查看正确的 nic 后,您可以获取您正在查看的设备的 $nic.GetValue("DriverVersion")。

相关内容