Desculpas se isso parece ser uma questão noob ... mas eu não consigo entender isso pela minha vida. Estou usando o WQL para consultar o WMI para a versão do BIOS da Dell em uma sequência de tarefas no SCCM. Essa consulta de WQL está abaixo:
select * from WIN32_BIOS where SMBIOSBIOSVersion < "1.10.5"
Simples o suficiente. Esta etapa será executada (e instalará a versão mais recente do BIOS da Dell) se a versão do BIOS na máquina que estiver executando a sequência for menor que a versão atual, 1.10.5. Longa história curta ... o passo não correu. Então eu comecei a investigar.
Na máquina que a sequência de tarefas deveria executar, a versão do BIOS é 1.7.3. Eu abro um prompt de comando e executo o seguinte ...
wmic BIOS get SMBIOSBIOSVersion
Qual retorna 1.7.3. NO ENTANTO ... quando eu executo a consulta WMIC abaixo, recebo "No Instances Available"
C:\>wmic BIOS where "SMBIOSBIOSVersion < '1.10.5'" get SMBIOSBIOSVersion
No Instance(s) Available.
Executando a consulta com o ">" em vez de "<" Obtém o resultado desejado.
C:\>wmic BIOS where "SMBIOSBIOSVersion > '1.10.5'" get SMBIOSBIOSVersion
SMBIOSBIOSVersion
1.7.3
Estou perplexo. 1.10.5 é maior que 1.7.3 (claramente) mesmo em formato hexadecimal (verifiquei no caso de alguma anomalia estranha).
A remoção das aspas simples não funciona porque a consulta se torna inválida. (IE "SMBIOSBIOSVersion > 1.10.5")
Mais uma vez, peço desculpas se esta é uma questão noob. Eu sou relativamente novo no WMI e consultando usando WMIC e WQL. Eu não preciso necessariamente do script correto. Eu realmente quero saber exatamente porque esse resultado não é o que eu esperava.