Files
rustdesk-startscript/docs/TECHNIK.md
2026-04-18 22:57:53 +02:00

3.7 KiB
Raw Permalink Blame History

Technische Details

Ablauf der Scripte

START Rustdesk lokal.cmd

Batch-Script (.cmd)
│
├── Prüfe ob rustdesk.exe neben dem Script liegt
├── Beende laufende RustDesk-Instanzen (taskkill)
├── Sichere bestehende RustDesk2.toml → .techniverse-bak
├── Schreibe Server-Konfiguration in RustDesk2.toml
├── Starte rustdesk.exe
├── Warte bis Nutzer RustDesk schließt (Polling-Schleife)
└── Cleanup
    ├── Konfiguration aus Backup wiederherstellen (oder löschen)
    ├── %LOCALAPPDATA%\rustdesk entfernen
    └── %APPDATA%\RustDesk entfernen (nur wenn vorher nicht vorhanden)

START Rustdesk Online-DL.cmd

Batch-Wrapper → extrahiert eingebettetes PowerShell-Script
│
├── PowerShell-Code wird aus dem .cmd in %TEMP% extrahiert
├── Ermittle neueste RustDesk-Version via GitHub API
│   └── GET https://api.github.com/repos/rustdesk/rustdesk/releases/latest
├── Download von rustdesk-*-x86_64.exe nach %TEMP%\techniverse-fernwartung\
├── Sichere bestehende RustDesk2.toml → .techniverse-bak
├── Schreibe Server-Konfiguration in RustDesk2.toml
├── Starte rustdesk.exe
├── Warte bis Nutzer RustDesk schließt (Polling-Schleife)
└── Cleanup (im finally-Block, läuft auch bei Fehler)
    ├── Konfiguration aus Backup wiederherstellen (oder löschen)
    ├── %LOCALAPPDATA%\rustdesk entfernen
    ├── %APPDATA%\RustDesk entfernen (nur wenn vorher nicht vorhanden)
    └── %TEMP%\techniverse-fernwartung\ entfernen

Dateipfade

Pfad Zweck
%APPDATA%\RustDesk\config\RustDesk2.toml RustDesk-Konfigurationsdatei (Server, Key, etc.)
%APPDATA%\RustDesk\config\RustDesk2.toml.techniverse-bak Backup der originalen Konfiguration
%LOCALAPPDATA%\rustdesk\ Von RustDesk entpackte Dateien (wird beim Cleanup entfernt)
%TEMP%\techniverse-fernwartung\ Temporärer Download-Ordner (nur Online-Variante)
%TEMP%\techniverse-starter.ps1 Temporär extrahiertes PowerShell-Script (nur Online-Variante)

Generierte Konfiguration (RustDesk2.toml)

rendezvous_server = "fernwartung.techniverse.net"
nat_type = 1
serial = 0

[options]
custom-rendezvous-server = "fernwartung.techniverse.net"
relay-server = "fernwartung.techniverse.net"
key = "uE3lJCcnk21qN0VUdqtwJG6QAnpahdB5b2gVe40oMbU="

Falls ein API-Server konfiguriert ist, wird zusätzlich api-server gesetzt.


Batch/PowerShell-Hybrid (Online-Variante)

Das Online-Script nutzt einen Trick: Die .cmd-Datei enthält eingebetteten PowerShell-Code zwischen den Markern :: BEGIN_PS1 und :: END_PS1. Der Batch-Teil extrahiert diesen Code in eine temporäre .ps1-Datei und führt sie aus. Dadurch braucht der Nutzer nur eine einzige Datei.

Ausführung: powershell.exe -NoProfile -ExecutionPolicy Bypass -File <temp>.ps1


Cleanup-Verhalten

Beide Scripte räumen nach dem Beenden von RustDesk auf:

  • Backup vorhanden: Die originale RustDesk2.toml wird wiederhergestellt, das Backup gelöscht.
  • Kein Backup: Die geschriebene RustDesk2.toml wird gelöscht. Zusätzlich wird der gesamte %APPDATA%\RustDesk-Ordner entfernt (da RustDesk vorher nicht installiert war).
  • Installationsreste: %LOCALAPPDATA%\rustdesk wird immer entfernt.
  • Online-Variante: Der Cleanup läuft im finally-Block und wird auch bei Fehlern ausgeführt.

Voraussetzungen im Detail

Anforderung Lokal Online
Windows 10+
Administratorrechte
Internetverbindung
PowerShell 5.1+
TLS 1.2
rustdesk.exe im gleichen Ordner (wird heruntergeladen)