102 lines
3.7 KiB
Markdown
102 lines
3.7 KiB
Markdown
# 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) |
|