Проверка готовности TPM с помощью WMI и VBSCRIPT
Если я использую этот метод WMI '.IsEnabled', я должен быть обеспокоен тем, как я обрабатываю результаты в моем операторе if. Если метод возвращает значение bool, могу ли я использовать Not или я должен сделать что-то вроде
if myStatus <> 0 OR isTPMEnabled <> True then
Вот мой код
function isTPMReadyToBeOwned(myTPMService)
dim myStatus, isTPMEnabled, isTPMActivated, isTPMOwnershipAllowed
myStatus = myTPMService.IsEnabled(isTPMEnabled)
if myStatus <> 0 or not(isTPMEnabled) then
oLogging.CreateEntry "TPM isn't enable and must be enabled and activated manually, errorcode " & Hex(myStatus), LogTypeWarning
isTPMReadyToBeOwned = False
exit Function
end If
myStatus = myTPMService.IsActivated(isTPMActivated)
If myStatus <> 0 or not(isTPMActivated) then
oLogging.CreateEntry "TPM isn't active and must be activated manually, errorcode " & Hex(myStatus), LogTypeWarning
isTPMReadyToBeOwned = False
exit Function
end If
myStatus = myTPMService.isOwnershipAllowed(isTPMOwnershipAllowed)
if myStatus <> 0 or not(isTPMOwnershipAllowed) then
oLogging.CreateEntry "TPM ownership is not allowed, errorcode " & Hex(myStatus), LogTypeWarning
isTPMReadyToBeOwned = False
exit Function
end If
isTPMReadyToBeOwned = True
end Function
1 ответ
Булевы выражения / переменные не должны сравниваться с булевыми литералами, потому что это добавляет дополнительный уровень сложности (оператор и операнд). Так что используйте Not isTPMEnabled
, Как Not
не является ни функцией, ни массивом, не используйте param list/index (); Reserve () для случаев переопределения приоритета.
Обновление с комментарием:
() имеют (слишком) много функций в VBScript
- список параметров () в вызовах функций: x = f (y, z)
- index (): a = SomeArray (4711)
- приоритет приоритета: 2 + 3 * 4 = 14, (2 + 3) * 5 = 25
() в логическом выражении должен быть только типа 3.