[GELÖST] Skriptvorschlag für RustDesk

Fragen zu WAPT-Paketen / Anfragen und Hilfe bezüglich WAPT-Paketen.
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Gesperrt
jlatieule
Nachrichten: 59
Anmeldung: 3. Juli 2019 - 9:18 Uhr

8. August 2024 - 11:11 Uhr

Guten Morgen,


Als Ersatz für TeamViewer nutzen wir einen RustDesk-Server, der nur von unseren Arbeitsstationen aus zugänglich ist. Es handelt sich um ein privates Relay.
Für die Installation eines privaten Relays steht Ihnen ein hervorragendes Installations- und Aktualisierungsskript zur Verfügung auf https://github.com/techahold/rustdeskinstall
Ich muss alle Clients auf die neue Version aktualisieren.
Zu diesem Zweck habe ich folgendes Paket erstellt (siehe Code am Ende der Nachricht)... Die Installation erfolgt im EXE-Format: rustdesk-1.2.7-x86_64.exe

Nach der Installation ändere ich zwei Optionen, bevor ich den Dienst neu starte.
Dieser Abschnitt ist völlig unoptimiert, und ich habe kommentiert, was fehlt.
Da RustDesk dies jedoch gut handhabt (mehrere Testszenarien), werde ich es vorerst dabei belassen.

Die Dateien update_package, uninstall und audit fehlen.

Denis oder Simon, könntet ihr das übernehmen und im Shop anbieten, damit es von anderen wiederverwendet werden kann?
Ich gehe davon aus, dass Sie mit der übersichtlicheren Ausgestaltung des Abschnitts "Optionen" und der Verwaltung des update_package (die abzufragende URL habe ich angegeben) besser zurechtkommen als ich.

Vielen Dank im Voraus

Code: Alle auswählen

# -*- coding: utf-8 -*-
from setuphelpers import *
import time, string, secrets

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls

# Création d'un mot de passe aléatoire
alphabet = string.ascii_letters + string.digits
rustdesk_pw = ''.join(secrets.choice(alphabet) for i in range(12))

# Configuration réseau pour RustDesk à importer
# Si vide ou invalide, la configuration réseau restera inchangée
rustdesk_cfg = "METTEZ-VOTRE-CONFIG-ENTRE-LES-GUILLEMETS"

def install():
    # Récupération de l'exécutable
    bin_name = glob.glob("rustdesk-*.exe")[0]

    # Désactivé car pas de détection de fin d'installation
##    install_exe_if_needed(
##        bin_name,
##        silentflags="--silent-install",
##        key="RustDesk",
##        min_version=control.get_software_version(),
##    )
    # Méthode manuelle
    # Si n'est pas installé ou version est inférieure à celle du paquet
    if ( not installed_softwares ('rustdesk') or
    Version(installed_softwares('rustdesk')[0]["version"]) < Version(control['version'].split('-',1)[0]) ):
        print("Installation de %s %s" % ( control['name'], control['version'].split('-',1)[0] ) )
        # Timeout pour sortir sans erreur... ajouter une pause de 10s si on n'utilise plus cette méthode
        run_notfatal( '%s --silent-install' % (bin_name), timeout=15 )
    else:
        print("%s %s est déjà installé" % ( control['name'], control['version'].split('-',1)[0] ) )

    # Récupération du dossier d'installation
    software = installed_softwares ('rustdesk')
    install_location = software[0]["install_location"]

    # Exécution ou installation du service
    if service_installed ("rustdesk"):
        if not service_is_running ("rustdesk"):
            print ('Démarrage du service')
            service_start('rustdesk')
    else:
        print ("Installation du service RustDesk")
        run_notfatal( '"%s\\rustdesk.exe" --install-service -wait -Verbose' % (install_location), timeout = 20 )

    print("Patientez quelques secondes avant que l'installation se poursuive")
    time.sleep(10)

    print("Application de la configuration réseau")
    run_notfatal( '"%s\\rustdesk.exe" --config %s' % (install_location, rustdesk_cfg) )
    print("Définition d'un mot de passe permanent aléatoire")
    run( '"%s\\rustdesk.exe" --password %s' % (install_location, rustdesk_pw) )
    # ID de RustDesk
    rustdesk_id = run_notfatal( '"%s\\rustdesk.exe" --get-id' % (install_location) )

    # Arrêt du service Rustdesk pour modifications des options
    if service_installed("rustdesk"):
        if service_is_running("rustdesk"):
            print("Arrêt du service Rustdesk")
            service_stop("rustdesk")

    # Ajout d'option personnalisé à la configuration
    # inifile_writestring ne peut pas être utiliser suite à mauvaise en-tête dans le fichier
    # En cas de ligne en doublon dans le fichier RustDesk2.toml, les dernières seront prise en compte... mais pas toujours !!!
    # Point d'amélioration :
        # Supprimer les fichier %appdata%\RustDesk\config de tous les profile
        # Chercher et remplacer les chaînes concernée
        # Si absent, créer les chaînes au lieu de le faire systématiquement
    toml = makepath("c:", "Windows", "ServiceProfiles", "LocalService", "AppData", "Roaming", "RustDesk", "config", "RustDesk2.toml")
    f = open( toml, 'a')
    f.write("\n" + "direct-server = 'Y'")
    f.write("\n" + "direct-access-port = '21118'")
    f.close

    # Redémarrage du service Rustdesk
    if service_installed("rustdesk"):
        if service_is_stopped("rustdesk"):
            print("Démarrage du service RustDesk")
            service_start("rustdesk")
    else:
        print ("Installation du service RustDesk")
        run_notfatal( '"%s\\rustdesk.exe" --install-service -wait -Verbose' % (install_location), timeout = 20 )

    # Retour sur la console de l'ID et du mot de passe permanent
    print ( "-------------------" )
    print ( "ID RustDesk : %s" % rustdesk_id )
    print ( "Mot de passe : %s" % rustdesk_pw )
    print ( "-------------------" )



def session_setup():
    # Créer le session_setup



def update_package():
    # Créer l'update package
    # curl latest sur https://www.github.com//rustdesk/rustdesk/releases/latest
    # fichier lastest avec $RDLATEST sur https://github.com/rustdesk/rustdesk/releases/download/$RDLATEST/rustdesk-$RDLATEST-x86_64.exe



def uninstall():
    # Créer l'uninstall



def audit():
    # Créer l'audit
    # Vérifier si service fonctionne
    # Vérifier configuration dans makepath("c:", "Windows", "ServiceProfiles", "LocalService", "AppData", "Roaming", "RustDesk", "config", "RustDesk2.toml")


System- und Netzwerkadministrator bei Domitia Habitat
rmaurisso
Nachrichten: 4
Anmeldung: 12. Januar 2021 – 17:12 Uhr

14. August 2024 - 09:34 Uhr

Hallo,
vielen Dank @jlatieule für dieses Skript.
Kann man bei der Verwendung externer Tools in wapt die "rustdesk_id" als Argument angeben? Das würde die Verbindung zum ausgewählten Computer vereinfachen (ähnlich wie bei TightVNC).
Vielen Dank.
jlatieule
Nachrichten: 59
Anmeldung: 3. Juli 2019 - 9:18 Uhr

14. August 2024 – 20:50 Uhr

Ich weiß momentan nicht, wie ich die in den Installationsprotokollen angezeigte ID für wapt abrufen kann.

Standardmäßig ist die Anmeldung per IP-Adresse aktiviert. Mit externen wapt-Tools funktioniert sie einwandfrei.

PS: Hinweis zur DSGVO: Ohne Zustimmung des Nutzers ist keine Verbindung möglich. Das in den Protokollen gespeicherte permanente Passwort dient ausschließlich der Systemwartung, wenn kein Nutzer angemeldet ist.
System- und Netzwerkadministrator bei Domitia Habitat
Benutzeravatar
Sfonteneau
WAPT-Experte
Nachrichten: 2322
Registriert: 10. Juli 2014 - 23:52 Uhr
Kontakt:

22. August 2024 – 18:05 Uhr

Hallo @jlatieule,

vielen Dank für Ihren Vorschlag.

Ich habe mit der Arbeit an RustDesk begonnen.

Es gibt drei Pakete:

tis-rustdesk-server (zur Installation des RustDesk-Servers unter Linux oder Windows)

, tis-rustdesk (zur Installation des RustDesk-Agenten unter Linux, Windows oder Mac ohne Konfiguration)

und tis-rustdesk-config-template (konfiguriert den RustDesk-Agenten; hierfür ist die Ausführung eines Update-Pakets erforderlich).

Das zufällig generierte Passwort wird verschlüsselt übertragen.

Wir werden prüfen, ob eine kleine native Integration in das Kontextmenü (Rechtsklickmenü) hinzugefügt werden kann, um die Nutzung zu vereinfachen. ;)
jlatieule
Nachrichten: 59
Anmeldung: 3. Juli 2019 - 9:18 Uhr

22. August 2024 – 18:44 Uhr

Ausgezeichnet, Simon! Ich bin sehr gespannt auf die Serverseite. Wir mussten einiges recherchieren, um die Installation unter Debian zu optimieren.

Nach meinem Urlaub kann ich dir meine Serverinstallationsanleitung schicken; vielleicht findest du ja ein paar nützliche Tipps für die Einrichtung. Sag mir einfach, welche Kommunikationsmethode du bevorzugst.

PS: Als IT-Spezialist an der Victor-Hugo-Mittelschule in Narbonne habe ich unter dem Pseudonym „percherie“ im Forum mitgewirkt. Ich nehme an, du erinnerst dich an mich, und wie damals bin ich fest davon überzeugt, dass Teilen die Community voranbringt.
System- und Netzwerkadministrator bei Domitia Habitat
Benutzeravatar
Sfonteneau
WAPT-Experte
Nachrichten: 2322
Registriert: 10. Juli 2014 - 23:52 Uhr
Kontakt:

23. August 2024 - 09:57 Uhr

jlatieule schrieb: 22. August 2024 - 18:44 Uhr PS: Als ich IT-Spezialist an der Victor-Hugo-Mittelschule in Narbonne war, habe ich unter dem Pseudonym percherie im Forum mitgewirkt. Ich nehme an, Sie erinnern sich an mich, und wie damals bin ich fest davon überzeugt, dass wir durch Austausch gemeinsam vorankommen.
Natürlich erinnere ich mich. ;)Falls Sie jemals in Nantes sind, besuchen Sie uns doch, ich würde mich sehr freuen (ich bin nicht oft in Narbonne). :D )
jlatieule schrieb: 22. August 2024 - 18:44 Uhr Ich bin sehr gespannt auf die Serverseite. Wir mussten einige Recherchen durchführen, um die Installation unter Debian zu optimieren.
Nichts Besonderes, ich habe einfach das Python-Skript aus ihrer Dokumentation und hier nachgebildet: https://github.com/techahold/rustdeskin ... install.sh

Und für den Windows-Server habe ich einfach nssm ersetzt durch Engel

Und was den Rustdesk-MacOS-Client angeht, so ist er in meinen Tests nicht so gut, wir müssen wohl darauf zurückkommen.
rmaurisso
Nachrichten: 4
Anmeldung: 12. Januar 2021 – 17:12 Uhr

5. September 2024 – 16:10 Uhr

Hallo,
vielen Dank euch beiden.
Es funktioniert einwandfrei für externe Tools mit der IP-Adresse und für die Vorlage. ;)
Benutzeravatar
dcardon
WAPT-Experte
Nachrichten: 1953
Anmeldung: 18. Juni 2014 - 09:58 Uhr
Ort: Saint Sébastien sur Loire
Kontakt:

9. September 2024 – 15:46 Uhr

Hallo Régis,

vielen Dank für das Feedback. :-) Ich markiere das Thema als gelöst.

Viele Grüße,

Denis
Denis Cardon – Tranquil IT
Teilen Sie Ihre Erfahrungen auf WAPT! Senden Sie uns Ihre Blog- und Artikel-URLs im „Ihre Meinung des Forums, und wir werden sie auf der WAPT-
Gesperrt