-1

Я пытаюсь сделать скрипт для обновления машин, которые используют старые драйверы.

Я могу получить устройства, на которые хочу настроить таргетинг, следующим образом: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 ответ1

3

Вы также можете строго набрать [версия]. (Шей Леви пост)

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .