Announcements

Did you already try the new Windows 10 October 2020 Update?


Share your feedback and experience with TeamViewer on the new Windows build with our developers here.

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. 

Highlighted
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"
}

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.

2 Replies
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