如何使用 PowerShell 检查 Windows 更新 (WU) 目录中可用的驱动程序版本是否比 Windows 设备上安装的版本新?我知道我可以从 Windows Update Agent API 获取一些信息,但似乎我无法查询 API 以获取可用的特定软件组件的版本。我知道在更新包中标题中有一个版本号,但我知道该数字与更新包有关,而不是包中的任何一个特定文件。
例如,如果我在设备上安装了 abc.inf v1.0,如何检查 abc.inf 是否有大于 1.0 的版本可用?我不一定需要/想要安装更新或文件,但如果需要我可以下载。
API 不会告诉您所有驱动程序的版本号(有些驱动程序的标题中包含该版本号),但它只会告诉您系统中的硬件可使用的较新驱动程序,以及这些驱动程序何时发布释放。您可以运行此命令来查找驱动程序更新:
$WUSess = new-object -ComObject Microsoft.Update.Session
$Searcher=$WUSess.CreateUpdateSearcher()
$SearchResults = $Searcher.Search("IsInstalled=0 and Type='Driver'")
然后查看每个结果以“Driver”开头的各种属性。
PS C:\Users\TMTech> $SearchResults.Updates|FT Driver*
DriverClass DriverHardwareID DriverManufacturer DriverModel DriverProvider DriverVerDate
----------- ---------------- ------------------ ----------- -------------- -------------
OtherHardware usb\vid_045e&pid_0745 Microsoft Microsoft Mouse and Keyboard Detection Driver (USB) Microsoft 5/18/2011 12:00:00 AM
OtherHardware pci\ven_8086&dev_8d3a Intel Intel(R) Management Engine Interface Intel 11/19/2017 12:00:00 AM
Video pci\ven_10de&dev_107d&subsys_094e103c NVIDIA NVIDIA NVS 310 NVIDIA 5/6/2019 12:00:00 AM