Windows Vista Forums

Looking for an err message

  1. #1


    OldDog Guest

    Looking for an err message

    I am writting script to determine if the Trusted Platform Module (TPM)
    is turned on and active.

    If the TPM is turned on in the BIOS I have no problems checking it's
    status.
    My problem is when it is turned off, I do not get any error messages.

    Here is the code;

    Set objWMIService = GetObject("WinMgmts:
    {impersonationLevel=impersonate,AuthenticationLevel=pktprivacy}//" _
    & "." & "\root\CIMV2\Security\MicrosoftTpm") '<-- all one line
    Set objItems = objWMIService.InstancesOf("Win32_Tpm")

    For Each objItem In objItems

    rvaluea = objItem.IsEnabled(A)
    rvalueb = objItem.IsActivated(B)
    rvaluec = objItem.IsOwned(C)
    If A Then
    WScript.Echo "TPM Is Enabled: " & A
    Else
    WScript.Echo "TPM Is Enabled: " & A
    End If

    If B Then
    WScript.Echo "TPM Is Activated: " & B
    Else
    WScript.Echo "TPM Is Activated: " & B

    End If

    If C Then
    WScript.Echo "TPM Is Owned: " & C
    Else
    WScript.Echo "TPM Is Owned: " & C

    End If
    Next

    Any ideas on how to tell if there is no responce from the TPM?

    I tried this

    Set objWMIService = GetObject("WinMgmts:
    {impersonationLevel=impersonate,AuthenticationLevel=pktprivacy}//" _
    & "." & "\root\CIMV2\Security\MicrosoftTpm") '<-- all one line
    Set objItems = objWMIService.InstancesOf("Win32_Tpm")

    If Err.Number <> 0 Then
    WScript.Echo "Trusted Platform Module may be turned off"
    End If



    But I get err 0 regardless of the state of the device.

      My System SpecsSystem Spec

  2. #2


    Richard Mueller [MVP] Guest

    Re: Looking for an err message


    "OldDog" <mikef2691@xxxxxx> wrote in message
    news:1e15be35-8822-4167-883a-7d7193ba24c0@xxxxxx

    >I am writting script to determine if the Trusted Platform Module (TPM)
    > is turned on and active.
    >
    > If the TPM is turned on in the BIOS I have no problems checking it's
    > status.
    > My problem is when it is turned off, I do not get any error messages.
    >
    > Here is the code;
    >
    > Set objWMIService = GetObject("WinMgmts:
    > {impersonationLevel=impersonate,AuthenticationLevel=pktprivacy}//" _
    > & "." & "\root\CIMV2\Security\MicrosoftTpm") '<-- all one line
    > Set objItems = objWMIService.InstancesOf("Win32_Tpm")
    >
    > For Each objItem In objItems
    >
    > rvaluea = objItem.IsEnabled(A)
    > rvalueb = objItem.IsActivated(B)
    > rvaluec = objItem.IsOwned(C)
    > If A Then
    > WScript.Echo "TPM Is Enabled: " & A
    > Else
    > WScript.Echo "TPM Is Enabled: " & A
    > End If
    >
    > If B Then
    > WScript.Echo "TPM Is Activated: " & B
    > Else
    > WScript.Echo "TPM Is Activated: " & B
    >
    > End If
    >
    > If C Then
    > WScript.Echo "TPM Is Owned: " & C
    > Else
    > WScript.Echo "TPM Is Owned: " & C
    >
    > End If
    > Next
    >
    > Any ideas on how to tell if there is no responce from the TPM?
    >
    > I tried this
    >
    > Set objWMIService = GetObject("WinMgmts:
    > {impersonationLevel=impersonate,AuthenticationLevel=pktprivacy}//" _
    > & "." & "\root\CIMV2\Security\MicrosoftTpm") '<-- all one line
    > Set objItems = objWMIService.InstancesOf("Win32_Tpm")
    >
    > If Err.Number <> 0 Then
    > WScript.Echo "Trusted Platform Module may be turned off"
    > End If
    >
    > But I get err 0 regardless of the state of the device.
    I cannot find any script examples using Win32_Tpm, but the variables A, B,
    and C are never defined or given a value. If the rest of the code is OK (I
    cannot tell), then this might work:
    =========
    For Each objItem In objItems
    rvaluea = objItem.IsEnabled
    rvalueb = objItem.IsActivated
    rvaluec = objItem.IsOwned
    If rvaluea Then
    WScript.Echo "TPM Is Enabled"
    Else
    WScript.Echo "TPM Is Disabled"
    End If

    If rvalueb Then
    WScript.Echo "TPM Is Activated"
    Else
    WScript.Echo "TPM Is Not Activated"
    End If

    If rvaluec Then
    WScript.Echo "TPM Is Owned"
    Else
    WScript.Echo "TPM Is Not Owned"
    End If
    Next
    ======
    I would recommend using Option Explicit and not using "On Error Resume
    Next". For example, I would use the following at the beginning of the
    script:
    ==========
    Option Explicit

    Dim objWMIService, objItems, objItem
    Dim rvaluea, rvalueb, rvaluec
    =========
    Possibly if TPM is turned off, there are no objects in the collection
    objItems. You can detect this because the For Each loop will just skip and
    none of the statements in the loop will run. There will not necessarily be
    an error. You might want to use code similar to:
    ======
    Dim blnOn
    blnOn = False
    For Each objItem In objItems
    rvaluea = objItem.IsEnabled
    rvalueb = objItem.IsActivated
    rvaluec = objItem.IsOwned
    blnOn = True
    If (rvaluea = True) Then
    WScript.Echo "TPM Is Enabled"
    Else
    WScript.Echo "TPM Is Disabled"
    End If

    If (rvalueb = True) Then
    WScript.Echo "TPM Is Activated"
    Else
    WScript.Echo "TPM Is Not Activated"
    End If

    If (rvaluec = True) Then
    WScript.Echo "TPM Is Owned"
    Else
    WScript.Echo "TPM Is Not Owned"
    End If
    Next
    If (blnOn = False) Then
    Wscript.Echo "TPM is turned off in BIOS"
    End If

    --
    Richard Mueller
    MVP Directory Services
    Hilltop Lab - http://www.rlmueller.net
    --



      My System SpecsSystem Spec

Looking for an err message

Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: How to save a complete thread in Newsgroups, instead of message by message. Gordon Vista General 6 11 Jul 2009
new message window uploading photos error message Peter Harrison Live Mail 0 02 Apr 2009
Auto Select Next Message When Delete Viewed Message Neilius Vista mail 3 26 Jun 2008
Email message attachments to a received windows mail message PDevaney Vista mail 3 26 Feb 2008
Retrieving IMAP message stalls when message contains large attachment. Don Pellegrino Vista mail 0 11 Jan 2008