3.7 KiB
3.7 KiB
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.tomlwird wiederhergestellt, das Backup gelöscht. - Kein Backup: Die geschriebene
RustDesk2.tomlwird gelöscht. Zusätzlich wird der gesamte%APPDATA%\RustDesk-Ordner entfernt (da RustDesk vorher nicht installiert war). - Installationsreste:
%LOCALAPPDATA%\rustdeskwird 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) |