Проверка готовности 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

  1. список параметров () в вызовах функций: x = f (y, z)
  2. index (): a = SomeArray (4711)
  3. приоритет приоритета: 2 + 3 * 4 = 14, (2 + 3) * 5 = 25

() в логическом выражении должен быть только типа 3.

Другие вопросы по тегам