Highlighted
Posted by
Henagon

Deploying Teamviewer 13 with SCCM and detect difference between host and full

We are deploying Teamviewer 13 host to most clients and Teamviewer Full to a select group.  We don't want the Host version installing if the Full version of 12 or 13 is already installed.  I assume the 13 host will not install over 13 full, but how do I detect 12 full as opposed to 12 host.  Basicly we need a detection method for the SCCM deployment.  We looked at the Teamviewer.exe version numbers and they are the same for host and full.  So this is not helping.  Is there a Reg entry that is different?

6 Replies
Highlighted
Posted by
Digon

Re: Deploying Teamviewer 13 with SCCM and detect difference between host and full

Hi,

the following registry keys exist only on a full installation:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.tvc
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.tvlink
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.tvs

Hope it will be helpful

regards,

Minidou

Highlighted
Posted by
Digon

Re: Deploying Teamviewer 13 with SCCM and detect difference between host and full

I am working on the same situation.

It's very frustrating because there are so difficult to detect the differences. IMHO that's not enough. I want a Regkey with ther installed Version like "Name = TeamViewer 14 Host or TeamViewer 14". The second way is to fill de ComObject like here: https://community.teamviewer.com/t5/Knowledge-Base/Command-line-parameters/ta-p/34447 

There is the .ApplicationType and this could be a good place. 

Posted by
Digon

Re: Deploying Teamviewer 13 with SCCM and detect difference between host and full

Hello,

Try this PowerShell code:

$installedSoftware = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object {$_.DisplayName -like "*teamviewer*"}

if ($installedSoftware){
if (Select-String -InputObject $installedSoftware.DisplayName -Pattern "Host"){
Write-Host "Host Client Version is installed"
}
else{
Write-Host "Full Client Version is installed"
}
Write-host "installed version is" $installedSoftware.VersionMajor

}
else {
Write-Host "TeamViewer is not installed"
}

3 Replies
Highlighted
Posted by
Digon

Re: Deploying Teamviewer 13 with SCCM and detect difference between host and full

Hello!

Thank you for the script, it works.

I searched further and found another way:


$detecttv = (Get-CimInstance -ClassName win32_installedwin32program | Select-Object -Property Name, Version | Where-Object {$_.Name -match "TeamViewer*"})

The command take a few seconds, but there is no need to check the system architecture before.

With your script it is necessary to check 32-bit or 64-bit and change the regkey path.

There is another way to check the installed TeamViewer:

Get-CimInstance -ClassName win32_product -filter "Name like 'TeamViewer%'"

This works only if the teamviewer was installed through MSI and not EXE.

I think i will send TeamViewer a suggestion.

Highlighted
Posted by
Digon

Re: Deploying Teamviewer 13 with SCCM and detect difference between host and full

Hi pilgi3,

You're right! Try this one:

$installedSoftware = Get-Package -Name "*teamviewer*"

if ($installedSoftware){
if (Select-String -InputObject $installedSoftware.Name -Pattern "Host"){
Write-Host "Host Client Version is installed"
}
else{
Write-Host "Full Client Version is installed"
}
Write-host "installed version is" $installedSoftware.Version

}
else {
Write-Host "TeamViewer is not installed"
}

Enjoy ;)

Highlighted
Posted by
Trigon

Re: Deploying Teamviewer 13 with SCCM and detect difference between host and full

My solution is similar to Hirsch's, but you can use it in a CMD file:

FOR /F "USEBACKQ SKIP=1" %%F IN (`wmic product where "Description like 'TeamViewer'" get Description ^| findstr /r /v "^$"`) DO SET TVHOST=Full
FOR /F "USEBACKQ SKIP=1" %%F IN (`wmic product where "Description like 'TeamViewer Host'" get Description ^| findstr /r /v "^$"`) DO SET TVHOST=Host