@echo off setlocal title Bestandsaufnahme color 0B echo ============================================================ echo Bestandsaufnahme des Rechners echo (liest nur aus, aendert nichts am System) echo ============================================================ echo. :: --- Auf Administratorrechte pruefen --------------------------------- :: net session braucht den Server-Dienst. Faellt der aus, wird der :: Rechtestand direkt bei Windows erfragt, statt faelschlich "kein :: Admin" anzunehmen. :: Achtung: %errorlevel% wird innerhalb eines geklammerten Blocks schon :: beim Parsen des Blocks ersetzt, nicht zur Laufzeit. Der Fallback muss :: deshalb mit && arbeiten, sonst prueft er den Errorlevel von net session :: statt den von fltmc und ist damit wirkungslos. set "ISADMIN=" net session >nul 2>&1 && set "ISADMIN=1" if not defined ISADMIN fltmc >nul 2>&1 && set "ISADMIN=1" if not defined ISADMIN ( echo Es werden Administratorrechte benoetigt. echo Bitte gleich die Windows-Nachfrage mit "Ja" bestaetigen... echo. :: Doppelte Anfuehrungszeichen: der Pfad darf Leerzeichen und :: Apostrophe enthalten, ohne dass PowerShell daran zerbricht. powershell -NoProfile -Command "Start-Process -FilePath \"%~f0\" -Verb RunAs" 2>nul if errorlevel 1 ( echo. echo ------------------------------------------------------------ echo Der Start mit Administratorrechten wurde abgebrochen echo oder abgelehnt. echo. echo Ohne Administratorrechte fehlen: WLAN-Passwoerter, echo Daten anderer Benutzerkonten und Teile der Lizenzdaten. echo. echo Bitte erneut starten und die Nachfrage mit "Ja" echo bestaetigen - oder einen Administrator hinzuziehen. echo ------------------------------------------------------------ echo. pause ) else ( echo. echo Der Lauf geht in einem NEUEN Fenster mit Administrator- echo rechten weiter. Dieses Fenster kann geschlossen werden. timeout /t 5 >nul ) exit /b ) :: --- PowerShell-Skript aus demselben Ordner starten ------------------ if not exist "%~dp0Bestandsaufnahme.ps1" ( echo FEHLER: Bestandsaufnahme.ps1 wurde nicht gefunden. echo Erwartet im Ordner: %~dp0 echo Bitte BEIDE Dateien zusammen entpacken und erneut starten. echo. pause exit /b 1 ) :: Blockierung aus dem Internet-Download entfernen, sonst verweigert :: Windows die Ausfuehrung des Skripts aus einer geladenen ZIP. powershell -NoProfile -Command "Unblock-File -LiteralPath \"%~dp0Bestandsaufnahme.ps1\"" >nul 2>&1 powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0Bestandsaufnahme.ps1" set "RC=%errorlevel%" echo. :: Jeder Rueckgabewert bekommt seine eigene, zutreffende Meldung. Die :: fruehere Sammel-Meldung verwies bei einem Startabbruch (Code 1) auf :: Protokolldateien, die in genau diesem Fall gar nicht entstehen. if "%RC%"=="0" ( echo ============================================================ echo Fertig. Der Ergebnisordner und die ZIP-Datei liegen echo unter dem oben angezeigten Pfad. echo ============================================================ ) else if "%RC%"=="4" ( echo ============================================================ echo Fertig - aber mit WARNUNGEN ^(Code 4^). echo Bitte den Warnungsblock oben in _ZUSAMMENFASSUNG.txt echo lesen - dort steht, welche Angaben unvollstaendig echo sein koennten. echo ============================================================ ) else if "%RC%"=="2" ( echo ============================================================ echo Durchgelaufen, ABER mindestens ein Abschnitt ist echo FEHLGESCHLAGEN ^(Code 2^). Bitte _LAUFPROTOKOLL.txt und echo _ZUSAMMENFASSUNG.txt lesen - dort steht, was fehlt. echo ============================================================ ) else if "%RC%"=="3" ( echo ============================================================ echo Daten vollstaendig erhoben, aber die ZIP-Datei FEHLT echo ^(Code 3^). Bitte den Ergebnisordner von Hand packen echo oder komplett kopieren. echo ============================================================ ) else ( echo ============================================================ echo Das Skript konnte NICHT normal laufen ^(Code %RC%^). echo Es sind moeglicherweise KEINE Ergebnisdateien entstanden - echo ein Protokoll gibt es in diesem Fall nicht. echo Haeufige Ursachen: zu alte PowerShell-Version, blockierter echo Ausgabeordner ^(Virenschutz^). Meldung oben im Fenster lesen. echo ============================================================ ) echo. echo ACHTUNG: Die Ergebnisse enthalten Passwoerter im Klartext echo ^(WLAN-Schluessel, Produktschluessel^). Vertraulich behandeln. echo. pause endlocal