Initial Commit

This commit is contained in:
2026-04-18 22:57:53 +02:00
parent bce97306b5
commit d59a63a936
4 changed files with 483 additions and 2 deletions

101
docs/TECHNIK.md Normal file
View File

@@ -0,0 +1,101 @@
# 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) |