TeamViewer Integration with CapaInstaller
October 1, 2020
Senior Consultant Erik Kaufmann. Employed by CapaSystems since 2003. Erik is our instructor at the CapaInstaller Foundation and the Software Packaging courses and is a very talented sparring partner with insight into many technologies.

TeamViewer Integration: To Integrate TeamViewer with CapaInstaller, you need to use Custom Inventory and External tools – follow this blog to make the integration work.

The first requirement is to collect the TeamViewer ClientID from all the computers using the CapaInstaller Custom Inventory.

To collect the ClientID, call this function from the Custom Inventory job.

Function GetTeamViewerID()
Dim bStatus
'begin
bStatus=True
sFunction="GetTeamViewerID"
xStatus=Job_WriteLog(sFunction,"Now Running in " & sFunction,bStatus,True)
If gbX64 Then
sKey="SOFTWARE\WOW6432Node\Teamviewer"
Else
sKey="SOFTWARE\Teamviewer"
End If
If bStatus Then bStatus=Reg_GetInteger("HKLM",sKey,"ClientID",False)
If bStatus and gbValue Then
bStatus=Ini_WriteEntry,msInventoryFile,"Customer Inventory",TeamViewerID,giValue)
Else
xStatus=Job_WriteLog(sFunction,"TeamViewerID Is not available",bStatus,True)
End If
GetTeamViewerID=bStatus
End Function

The function retrieves the TeamViewer Client ID and assigns the value to the computer under Inventory > Custom.

Go to the System Administration Plugin and select tools. In the drop-down, select External Tools.

Create a Computer type and click Add.

Give the Tool a Name like TeamViewer

In Full path to the file browse to the exe file you want to use – remember this is relative to the active console so Teamviewer must be installed in the same position on all computers using the Capa Console

In the Arguments write –id and use the > to select custom Inventory.

Select the Category, Customer Inventory, and select the entry, TeamViewerID. Now it should work –unfortunately, there is a minor issue with this function in CapaInstaller 5.7, where it is missing a $ character.

This is what you get.

–id CSI:[Category]Customer Inventory[EntryCSI]TeamViewerID$

But it should be like this.

–id $CSI:[Category]Customer Inventory[EntryCSI]TeamViewerID$

That’s it; Now you can remote control the computers without entering the TeamViewer ID

Read more about CapaInstaller