If you haven't don'e so already check out my similar post on verifying if there's a TPM present for Dell systems here.
Using similar logic (it works after all :-)) I've changed the script to look for the Lenovo programmed response and edited my task sequence to load the required Lenovo drivers in the order they must be placed, the Lenovo Check for TPM group will only run based on a wmi query, the wmi query is as follow
Select * from Win32_ComputerSystem where Manufacturer like "%Lenovo%"
In this group we have a sub-group which plugs the needed drivers into our WinPE session (without the need for changing your boot images, cool huh ?)
The sub-group is called Prepare SMBUS and SMBIOS (much like Prepare CCTK and HAPI on the Dell TPM check) and has three steps
xcopy Lenovo
Install SMBUS Driver
Install SMBIOS Driver
Xcopy simply copies the Lenovo specific drivers *see screenshot*
from our previously created
BitLocker Tools
package to where we want them, you'll need to download the SMBUS and SMBIOS drivers from Lenovo (ask your Lenovo TAM if you cannot find them) and the next two commands install the correct drivers from the xcopied source.
Next we have the
Install SMBUS Driver
, which does just that, it installs the required SMBUS driver for Lenovo, note that this step will fail unless you
specify the working directory
, in our case it's x:\lenovo\tpm\smbus
The
Install SMBIOS Driver
loads another driver but you must also specify the correct working directory for THAT driver otherwise once again it will fail.
After successful completion of that group we xcopy the Lenovo files to a sub directory of our
%scriptroot%
before running the actual
Check_for_TPM_Lenovo.WSF
file, this will only set our TPM_Available variable=True if the correct string is found, otherwise the variable will be false.
The remaining steps in this group will run/not run based on the result of that variable.
here's the script
<job id="checkTPM">
<script language="VBScript" src="..\ZTIUtility.vbs"/>
<script language="VBScript">
Dim oShell
Set oShell = CreateObject("WScript.Shell")
oEnvironment.Item("TPM_AVAILABLE") = False
retCode = oShell.Run("cmd /c " & Replace(WScript.ScriptFullName,WScript.ScriptName,"") & "tpm_activate_cmd.exe /verbose | find " & chr(34) & "TPM is present in this system" & chr(34) , 0, True)
If(retCode = 0) Then
oEnvironment.Item("TPM_AVAILABLE") = True
End If
WScript.Quit(0)
</script>
</job>
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.
If you haven't don'e so already check out my similar post on verifying if there's a TPM present for Dell systems here.
Using similar logic (it works after all :-)) I've changed the script to look for the Lenovo programmed response and edited my task sequence to load the required Lenovo drivers in the order they must be placed, the Lenovo Check for TPM group will only run based on a wmi query, the wmi query is as follow
In this group we have a sub-group which plugs the needed drivers into our WinPE session (without the need for changing your boot images, cool huh ?)
The sub-group is called Prepare SMBUS and SMBIOS (much like Prepare CCTK and HAPI on the Dell TPM check) and has three steps
Share this post
Link to post
Share on other sites