você também pode digitar strongmente para [versão]. (Post de Shay Levy)
Get-WmiObject win32_pnpsigneddriver | where {$_.DeviceID -match "VEN_8086&DEV_0083" -and [version]$_.DriverVersion -lt [version]'1.7.0.2'}
Estou tentando criar um script para atualizar máquinas que usam drivers antigos.
Eu posso pegar os dispositivos que quero segmentar assim: Get-WmiObject win32_pnpsigneddriver |where {$_.DeviceID -match "VEN_8086&DEV_0083"}
Agora, a versão atual do driver para isso é 17.0.2, mas a máquina que estou testando tem a versão 14.1.1.3 instalada.
Eu quero que minha linha de código use algo assim:
Get-WmiObject win32_pnpsigneddriver |
where {$_.DeviceID -match "VEN_8086&DEV_0083" -AND $_.DriverVersion -le 17.0.2.0}
que falha, é claro, já que você não pode ter dois pontos decimais em um número. Se mudar meu código para ser:
Get-WmiObject win32_pnpsigneddriver |where {$_.DeviceID -match "VEN_8086&DEV_0083" -AND $_.DriverVersion -le 17.0}
, em seguida, recebo a resposta que quero, mas é claro que quando a versão 17.0.9.9 está fora e minha máquina de destino está executando o 17.0.2.0, o driver não será atualizado.
Alguma idéia de como eu posso comparar números como esse?
Tags drivers windows-7 powershell