Извиняюсь, если это кажется вопросом нуба ... но я не могу понять это для моей жизни. Я использую WQL для запроса WMI о версии Dell BIOS в последовательности задач в SCCM. Это WQL Query ниже:
select * from WIN32_BIOS where SMBIOSBIOSVersion < "1.10.5"
Достаточно просто. Этот шаг запустится (и установит последнюю версию BIOS Dell), если версия BIOS на компьютере, на котором выполняется последовательность, меньше текущей версии, 1.10.5. Короче говоря ... шаг не бежал. Итак, я приступил к расследованию.
На машине, на которой должна была выполняться последовательность задач, версия BIOS 1.7.3. Я открываю командную строку и запускаю следующее ...
wmic BIOS get SMBIOSBIOSVersion
Который возвращает 1.7.3. ОДНАКО ... когда я запускаю запрос WMIC ниже, я получаю "Нет доступных экземпляров"
C:\>wmic BIOS where "SMBIOSBIOSVersion < '1.10.5'" get SMBIOSBIOSVersion
No Instance(s) Available.
Выполнение запроса с «>» вместо «<» дает желаемый результат.
C:\>wmic BIOS where "SMBIOSBIOSVersion > '1.10.5'" get SMBIOSBIOSVersion
SMBIOSBIOSVersion
1.7.3
Я в тупике. 1.10.5 больше, чем 1.7.3 (ясно) даже в шестнадцатеричной форме (я проверил на случай, если это была какая-то странная аномалия).
Удаление одинарных кавычек не работает, так как запрос становится недействительным. (IE "SMBIOSBIOSVersion> 1.10.5")
Опять же, мои извинения, если это нубский вопрос. Я довольно новичок в WMI и делаю запросы с использованием WMIC и WQL. Мне не обязательно нужен правильный сценарий. Я действительно хочу точно знать, почему этот результат не так, как я ожидал.