Expert Level Integration of ThinInstaller with SCCM
Identifying Missing or Down-level Drivers and Hardware Applications on Think Products with ThinInstallerThis post is mainly for anyone using Update Retriever/ThinInstaller in their environment alongside SCCM (Current Branch).
If you use ThinInstaller to install drivers and hardware apps on your client systems, a recently added action called "SCAN" can be used in the command line when calling ThinInstaller.
An example of its use will look like this:
What this will do is search your Update Retriever repository and find all applicable content for the system but not install anything. A second log will be generated when using the SCAN switch titled "Update_ApplicabilityRulesTrace.txt" along with the expected "Update_log_<CurrentTimeStamp>.txt" that gets created any time ThinInstaller is executed.
A quick look inside the Update_ApplicabilityRulesTrace log:
Highlighted in red is a package ID that was found in the repository, but was not detected as being installed. You will also see a few lines below that which are the dependencies that are checked to determine applicability. If you want to check what package that is, you'll have to find it in Update Retriever using the Package ID, which can be time consuming if there are a lot of updates.
So how can the data in this log be returned in an easy to read format while matching the package ID's to its friendly names?
Introduced in SCCM (Current Branch) 1706 is the ability to run PowerShell scripts against Device Collections or individual on-prem managed Windows PCs.
The below PowerShell script can be run against your Think products from the ConfigMgr console:
A quick walkthrough of the script:
- Your Update Retriever repository share will be defined and the package ID's and friendly names will be pulled from the database.xml.
- It will check if ThinInstaller is installed on the system. By default, ThinInstaller is installed to Program Files (x86)\Lenovo\ThinInstaller. If it's not there, it will exit out.
- If ThinInstaller is present, older logs will be discarded, TI will execute with the SCAN action, and packages that are detected as not installed will be returned, matching the package ID to its friendly name.
The end result will look something like this when complete: