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

102 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)
```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) |