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

但是没有GUID / ParentID /等。 属性为Win32_PnpSignedDriver对象。 是否有另一种方式来获取有关设备的驱动程序(特别是驱动程序版本)的信息,并获得设备的GUID? 是否有可能赢得Win32_PnpSignedDriver,我只是没有看到它?

我find了一个简单的方法。 我对registry并不擅长,所以这是我查看的最后一个地方。 但使用它可以更容易地find我正在寻找的信息。

我用和原始文章(用Win32_NetworkAdapter WMI对象)相同的方式比较nic信息,但是我将GUID与registry值进行比较。 这可以使用下面的一行来获得所有的nics:

  $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。 在确认您正在通过validationGUID来查看正确的网卡后,您可以为您正在查看的设备获取$ nic.GetValue(“DriverVersion”)。