@echo off chcp 65001 >nul setlocal EnableExtensions EnableDelayedExpansion title Fernwartung starten - TeamViewer QuickSupport color 0E set "URL=https://download.teamviewer.com/download/TeamViewerQS.exe" set "OUT=%TEMP%\TeamViewerQS.exe" set "LOG=%TEMP%\tv_debug.log" cls echo =========================================================== echo Fernwartung starten - TeamViewer QuickSupport (Ein-Klick) echo =========================================================== echo. echo [1/5] Verbindungstest und Dateigroesse ermitteln ... :: Prüfe, ob curl vorhanden ist where curl >nul 2>&1 if errorlevel 1 ( color 0C echo ❌ "curl" wurde nicht gefunden. Bitte Windows 10/11 verwenden. goto :END ) :: Teste Verbindung (HEAD-Anfrage) curl -I -L "%URL%" --max-time 10 >"%LOG%" 2>&1 if errorlevel 1 ( color 0C echo ❌ Verbindung fehlgeschlagen. echo Details: type "%LOG%" goto :END ) :: Versuche Groesse zu ermitteln for /f "usebackq tokens=* delims=" %%A in (`powershell -NoProfile -Command "(Invoke-WebRequest -Uri '%URL%' -Method Head -UseBasicParsing).Headers['Content-Length']"`) do set "CL=%%A" if defined CL ( for /f "usebackq tokens=* delims=" %%B in (`powershell -NoProfile -Command "[math]::Round([double](%CL%)/1MB,1)"`) do set "MB=%%B" echo Erwartete Dateigroesse: ca. %MB% MB ) else ( echo Dateigroesse konnte nicht ermittelt werden. ) echo. echo [2/5] Lade QuickSupport herunter ... del /q "%OUT%" >nul 2>&1 curl -L "%URL%" --progress-bar -o "%OUT%" >>"%LOG%" 2>&1 if errorlevel 1 ( color 0C echo ❌ Download fehlgeschlagen. echo Details: type "%LOG%" goto :END ) for %%S in ("%OUT%") do set "SIZE=%%~zS" for /f "usebackq tokens=* delims=" %%B in (`powershell -NoProfile -Command "[math]::Round(%SIZE%/1MB,2)"`) do set "DLMB=%%B" echo ✓ Download abgeschlossen: %DLMB% MB echo. echo [3/5] Digitale Signatur pruefen ... powershell -NoLogo -NoProfile -Command ^ "$s = Get-AuthenticodeSignature '%OUT%';" ^ "Write-Host (' Status: {0}' -f $s.Status);" ^ "if($s.SignerCertificate){Write-Host (' Herausgeber: {0}' -f $s.SignerCertificate.Subject)};" ^ "if($s.Status -ne 'Valid'){exit 2}" if errorlevel 2 ( color 0C echo ❌ Ungueltige Signatur. goto :END ) echo ✓ Signatur gueltig. echo. echo [4/5] QuickSupport starten ... start "" "%OUT%" if errorlevel 1 ( color 0C echo ❌ Start fehlgeschlagen. SmartScreen oder AV blockiert. goto :END ) color 0A echo =========================================================== echo ✅ QuickSupport wurde gestartet! echo =========================================================== echo (Dieses Fenster schliesst sich in 10 Sekunden automatisch.) timeout /t 10 >nul goto :EOF :END echo. echo (Fehler aufgetreten. Dieses Fenster bleibt offen.) pause endlocal