tis-teamviewer-qs icon

TeamViewer QuickSupport

Paquet d’installation silencieuse pour TeamViewer QuickSupport

15.69.5-10

  • package: tis-teamviewer-qs
  • name: TeamViewer QuickSupport
  • version: 15.69.5-10
  • categories: Utilities
  • maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ
  • editor: TeamViewer
  • licence: proprietary_free,wapt_public
  • locale: all
  • target_os: windows
  • impacted_process: TeamViewerQS
  • architecture: all
  • signature_date:
  • size: 30.55 Mo
  • installed_size: 28.13 Mo
  • homepage : https://www.teamviewer.com

package           : tis-teamviewer-qs
version           : 15.69.5-10
architecture      : all
section           : base
priority          : optional
name              : TeamViewer QuickSupport
categories        : Utilities
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ
description       : TeamViewer QuickSupport enables a support technician to remotely access, remotely control, and remotely view your computer or mobile device for fast troubleshooting
depends           : 
conflicts         : 
maturity          : PROD
locale            : all
target_os         : windows
min_wapt_version  : 2.3
sources           : https://www.teamviewer.com/en/info/quicksupport/
installed_size    : 28128512
impacted_process  : TeamViewerQS
description_fr    : TeamViewer QuickSupport permet à un technicien d'accéder à distance, de contrôler à distance et de visualiser à distance votre ordinateur ou votre appareil mobile pour un dépannage rapide
description_pl    : TeamViewer QuickSupport umożliwia technikowi pomocy technicznej zdalny dostęp, zdalne sterowanie i zdalny podgląd komputera lub urządzenia mobilnego w celu szybkiego rozwiązywania problemów
description_de    : Mit TeamViewer QuickSupport kann ein Support-Techniker aus der Ferne auf Ihren Computer oder Ihr mobiles Gerät zugreifen, es fernsteuern und aus der Ferne betrachten, um eine schnelle Fehlersuche zu ermöglichen
description_es    : TeamViewer QuickSupport permite que un técnico de asistencia acceda, controle y visualice a distancia su ordenador o dispositivo móvil para una rápida solución de problemas
description_pt    : O TeamViewer QuickSupport permite que um técnico de suporte aceda remotamente, controle remotamente e visualize remotamente o seu computador ou dispositivo móvel para uma rápida resolução de problemas
description_it    : TeamViewer QuickSupport consente a un tecnico dell'assistenza di accedere, controllare e visualizzare da remoto il computer o il dispositivo mobile per una rapida risoluzione dei problemi
description_nl    : TeamViewer QuickSupport stelt een supporttechnicus in staat om op afstand toegang te krijgen tot uw computer of mobiele apparaat, deze op afstand te bedienen en op afstand te bekijken voor snelle probleemoplossing
description_ru    : TeamViewer QuickSupport позволяет специалисту службы поддержки получить удаленный доступ, удаленно управлять и удаленно просматривать ваш компьютер или мобильное устройство для быстрого устранения неполадок
audit_schedule    : 
editor            : TeamViewer
keywords          : 
licence           : proprietary_free,wapt_public
homepage          : https://www.teamviewer.com
package_uuid      : 523d7dc1-2287-4b4d-9bc7-53e948f71a4d
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://community.teamviewer.com/t5/Change-Logs-EN/bd-p/Change_Logs_EN
min_os_version    : 6.1
max_os_version    : 
icon_sha256sum    : 71d3c188b8ebd8672d0ffcb36dae22598986ef3bf83981d468779f234a617c94
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date    : 2025-09-07T12:04:07.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature         : kQ2kYHNAG26cabB545c6VIbWl0+20tmikBuXik3jUyk2UejKPCPqpPeOhKzVmKaJBJK5jpbWIGIFUgR8pOpfhmkX7Sk9nYFmkBQ6fSYdKKFBkgIMjXBtSpsSwUJ+FX1UEhu090GbS0theXrj2Ikyli8s1LFw08DilGJkFhLfes3Etl2/Qf16g2EKDrDsv9BW/CNEPV7j6mMKeKqcNzoFC831HpD5SmhJ3RnwCUVI/6x93r8C8yGP6+EuoIYXdWFVemGt4Vp3okczESXeojUk/eeB997FCmgdD3e/9ucvsea/QJlhJQDjRRE6U/a1PBxqkxQntHYhtF7VKDIpC82Nsw==

# -*- coding: utf-8 -*-
from setuphelpers import *


app_name = "TeamViewerQS"
bin_name = "TeamViewerQS.exe"
app_dir = makepath(programfiles32, app_name)
app_path = makepath(app_dir, "TeamViewerQS.exe")


def install():
    # Uninstalling software from old path
    uninstall_tvqs()

    # Installing software
    killalltasks(ensure_list(control.impacted_process))
    if isdir(app_dir) and force:
        remove_tree(app_dir)
    mkdirs(app_dir)
    filecopyto(bin_name, app_path)

    # Creating shortcuts
    create_desktop_shortcut(app_name, target=app_path)
    create_programs_menu_shortcut(app_name, target=app_path)

    # Adding Firewall Rules
    remove_netfirewallrule(app_name)
    add_netfirewallrule(app_name, app_path, app_name, profile="Domain,Private", protocol="UDP")
    add_netfirewallrule(app_name, app_path, app_name, profile="Domain,Private", protocol="TCP")


def uninstall():
    # Uninstalling software
    killalltasks(ensure_list(control.impacted_process))
    if isdir(app_dir):
        remove_tree(app_dir)

    # Removing shortcuts
    remove_desktop_shortcut(app_name)
    remove_programs_menu_shortcut(app_name)

    # Removing Firewall Rules
    remove_netfirewallrule(app_name)


def uninstall_tvqs():
    bin_contains = "TeamViewerQS"
    app_name = "TeamViewerQS"
    app_dir = makepath(programfiles, app_name)

    # Uninstalling software
    killalltasks(control.get_impacted_process_list())
    if isdir(app_dir):
        remove_tree(app_dir)
    unregister_uninstall(app_name)

    # Removing shortcuts
    remove_desktop_shortcut(app_name)
    remove_programs_menu_shortcut(app_name)


def add_netfirewallrule(
    rule_name,
    app_path,
    group=None,
    direction="Inbound",
    profile=None,
    enabled=True,
    action="Allow",
    protocol=None,
):
    """
    Add a Windows Firewall rule using New-NetFirewallRule cmdlet in PowerShell for Windows 10 and newer,
    or netsh advfirewall for older Windows versions.

    https://learn.microsoft.com/troubleshoot/windows-server/networking/netsh-advfirewall-firewall-control-firewall-behavior
    https://learn.microsoft.com/powershell/module/netsecurity/new-netfirewallrule

    Args:
        rule_name (str): Display name for the firewall rule.
        app_path (str): Path to the program for which the rule is being created.
        group (str, optional): Group name for the firewall rule (only works with PowerShell).
        direction (str): Direction of the rule (Inbound or Outbound). Default: Inbound.
        profile (str or list, optional): Profile(s) to which the rule should apply (e.g., "Domain,Private"). Default: Any.
        enabled (bool): Specify if the created rule's state is Enabled (True) or not (False). Default: True.
        action (str): Action for the rule (Allow or Block). Default: Allow.
        protocol (str, optional): Protocol by name or number (e.g., "TCP", "UDP", "ICMPv4", or "ICMPv6"). Default: Any.

    Returns:
        waptutils.RunOutput: The result of the command execution.
    """
    if not isinstance(profile, list):
        profile = ensure_list(profile)
    profile = ",".join(profile)

    message = f"Adding Firewall Rule: {rule_name}"
    if direction:
        message += f" ({direction})"
    if protocol:
        message += f" ({protocol})"
    if action:
        message += f" ({action})"
    print(message)
    if windows_version() < WindowsVersions.Windows10:
        direction = "out" if direction.lower() == "Outbound".lower() else "in"
        enabled = "no" if not enabled else "yes"
        cmd_command = f'netsh advfirewall firewall add rule name="{rule_name}" dir={direction} action={action} program="{app_path}" enable={enabled}'
        if profile:  # any and all are working
            cmd_command += f' profile="{profile}"'
        if protocol:
            cmd_command += f' protocol="{protocol}"'
        result = run_notfatal(cmd_command)
    else:
        pwsh_command = (
            f'New-NetFirewallRule -DisplayName "{rule_name}" -Direction {direction} -Action {action} -Program "{app_path}" -Enabled {str(enabled)}'
        )
        if group:
            pwsh_command += f' -Group "{group}"'
        if profile:
            pwsh_command += f' -Profile "{profile}"'
        if protocol:
            pwsh_command += f' -Protocol "{protocol}"'
        result = run_powershell(pwsh_command, output_format="text")

    return result


def remove_netfirewallrule(rule_name):
    """
    Remove Windows Firewall rule using New-NetFirewallRule cmdlet in PowerShell for Windows 10 and newer,
    or netsh advfirewall for older Windows versions.

    Args:
        rule_name (str): Display name of the firewall rule to remove.

    Returns:
        waptutils.RunOutput: The result of the command execution.
    """
    print(f"Removing Firewall Rule: {rule_name}")
    if windows_version() < WindowsVersions.Windows10:
        result = run_notfatal(f'netsh advfirewall firewall delete rule name="{rule_name}"')
    else:
        result = run_powershell(
            f'Remove-NetFirewallRule -DisplayName "{rule_name}" -ErrorAction SilentlyContinue', output_format="text", accept_returncodes=[0, 1, 3010]
        )

    return result

# -*- coding: utf-8 -*-
from setuphelpers import *


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    download_dict = {
        "windows-all": "https://dl.teamviewer.com/download/TeamViewerQS.exe",
    }
    download_url = download_dict[control.target_os + "-" + ensure_list(control.architecture)[0]]
    latest_bin = download_url.split("/")[-1]

    # Deleting binaries
    remove_outdated_binaries("*")

    # Downloading latest binaries
    print("Download URL is: %s" % download_url)
    if not isfile(latest_bin):
        print("Downloading: %s" % latest_bin)
        wget(download_url, latest_bin, proxies=proxies)
    else:
        print("Binary is present: %s" % latest_bin)

    # Checking version from file
    version = ".".join(get_version_from_binary(latest_bin).split(".")[:3])

    # Changing version of the package
    if Version(version, 4) > Version(control.get_software_version(), 4):
        print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
        package_updated = True
    else:
        print("Software version up-to-date (%s)" % Version(version))
    control.set_software_version(version)
    control.save_control_to_wapt()

    # Validating update-package-sources
    return package_updated

    # # Changing version of the package and validating update-package-sources
    # return complete_control_version(control, version)

836dc8bd85e9a23948f83dc8e3a542643ce3119327530000601970b00c78dadc : TeamViewerQS.exe
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
94cd8d06d809fb4400d8e88bcd707a56d7c368a25a751d35915ed9c2fe9250ad : WAPT/control
71d3c188b8ebd8672d0ffcb36dae22598986ef3bf83981d468779f234a617c94 : WAPT/icon.png
6db7494c8cf2a9a82acedbf28a2eb4d8b21f0d3cc3fa580d265a61b3276f40f4 : luti.json
9faef8e524746bf961dbb55d0225326d3309b01d98f0d263641e87f4f81f1bb4 : setup.py
2379e2f21137a0c81aa5fb90f360430a1f63dc0a410e566e5e436dd029039980 : update_package.py