teamviewer.com link icon
or
Ask The Community

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

  • Minidou
    Minidou Posts: 3

    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

  • pilgi3
    pilgi3 Posts: 3

    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. 

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

  • pilgi3
    pilgi3 Posts: 3

    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.

  • Minidou
    Minidou Posts: 3

    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 ;)

  • flospi
    flospi Posts: 24 ✭✭

    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

     

Sign In or Register to comment.