PowerShell - 使用多个小数点(即驱动程序版本)

PowerShell - 使用多个小数点(即驱动程序版本)

我正在尝试编写一个脚本来更新使用旧驱动程序的机器。

我可以像这样获取我想要的目标设备:Get-WmiObject win32_pnpsigneddriver |where {$_.DeviceID -match "VEN_8086&DEV_0083"}

现在,当前的驱动程序版本是 17.0.2,但我正在测试的机器安装的是 14.1.1.3 版本。

我希望我的代码行使用类似这样的内容:

Get-WmiObject win32_pnpsigneddriver |
where {$_.DeviceID -match "VEN_8086&DEV_0083" -AND $_.DriverVersion -le 17.0.2.0}

当然,这不会成功,因为数字中不能有两个小数点。如果将我的代码改为: Get-WmiObject win32_pnpsigneddriver |where {$_.DeviceID -match "VEN_8086&DEV_0083" -AND $_.DriverVersion -le 17.0}那么我就能得到我想要的答案,但是当然,当版本 17.0.9.9 发布并且我的目标机器运行的是 17.0.2.0 时,驱动程序将不会更新。

关于如何比较这样的数字,您有什么想法吗?

答案1

你也可以强类型化为 [version]。(Shay Levy 的文章)

Get-WmiObject win32_pnpsigneddriver | where {$_.DeviceID -match "VEN_8086&DEV_0083" -and [version]$_.DriverVersion -lt [version]'1.7.0.2'}

相关内容