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?
Comments
-
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\.tvsHope it will be helpful
regards,
Minidou
0 -
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.
0 -
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"
}2 -
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 -
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
0 -
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=Host0