通过PowerShell验证驱动程序安装

时间:2018-03-13 17:04:52

标签: powershell driver wmi

我需要在一堆系统上安装驱动程序。 (它应该来自MS,但我们正在使用kace进行修补,所以我不能使用wsus推出它)所以我发现这个oneliner RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132%路径到inf%

接下来是检查它,看看是否先安装了驱动程序,但我找不到驱动程序。我假设来自.inf的guidid或类将为我提供我需要检查的信息。

[Version]
Signature="$Windows NT$"
Class=SmartCard
ClassGuid={990A2BD7-E738-46c7-B26F-1CF8FB9F1391}
Provider=%ProviderName%
CatalogFile=delta.cat
DriverVer=08/11/2015,8.4.9.0"

Get-WmiObject Win32_PnPSignedDriver -Property * | where {$_.ClassGuid -like 
"990A2BD7-E738-46c7-B26F-1CF8FB9F1391"} 

但我找不到安装的驱动程序。我列出了所有的驱动程序,并试图滚动它们来找到这个驱动程序并且它不在那里或者它现在被称为其他东西。

最终目标是这样的

if (!(Get-WmiObject Win32_PnPSignedDriver| select devicename, classguid | 
where {$_.classguid -like "*990A2BD7-E738-46c7-B26F-1CF8FB9F1391*"})) {echo 
do stuff} else { echo dont do stuff}

能够识别是否安装了驱动程序的任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

有一点谷歌搜索有很长的路要走,因为之前已经问了几次。这是针对系统上所有已安装驱动程序的WMIC查询,然后使用classGUID过滤掉除智能卡类之外的所有内容。

Get-WmiObject Win32_PnPSignedDriver| where-object {$_.ClassGUID -eq "{50DD5230-BA8A-11D1-BF5D-0000F805F530}"} |Select *

如果您需要进一步说明,以下是我的回答 How do I get all the smart card readers on my system via WMI?
https://superuser.com/questions/567927/get-driver-version-via-command-line-windows
https://blogs.technet.microsoft.com/askperf/2012/02/17/useful-wmic-queries/