Autologon-Skript: zwei Fehler behoben, die Erfolg meldeten wo keiner war

Der erste Lauf hat NICHTS eingerichtet — weder Auto-Logon noch die
Sperr-Aufgabe. Nachgeprueft: AutoAdminLogon, DefaultUserName und
OilAutoLogonLock allesamt nicht vorhanden.

(1) $ErrorActionPreference = 'Stop' PLUS schtasks /Delete auf eine noch nicht
    existierende Aufgabe: native Programme schreiben nach stderr, PowerShell
    macht daraus unter 'Stop' einen Abbruch. Das Skript endete, BEVOR /Create
    lief. Jetzt wird vorher per /Query geprueft.

(2) Die Erfolgsmeldung log: ein fehlendes DefaultPassword wurde als
    "LSA-Secret " ausgegeben — dabei war gar nichts gesetzt, weil der
    Autologon-Dialog ohne Enable geschlossen wurde. Abwesenheit eines
    Klartext-Passworts beweist nicht, dass der sichere Weg genommen wurde; sie
    ist auch mit "nichts passiert" vereinbar. Jetzt ist AutoAdminLogon = 1 die
    Bedingung, und erst danach wird ueber die Speicherart geurteilt. Ohne
    aktives Auto-Logon bricht das Skript mit Code 1 ab und ueberspringt
    Schritt 2.

Dazu ein Design-Fehler, der erst beim Nachdenken auffiel: die Sperre haette bei
JEDER Anmeldung gefeuert — ein ONLOGON-Trigger unterscheidet nicht zwischen
Auto-Logon und manuellem Login. 30 s nach jedem normalen Anmelden waere der
Bildschirm zugefallen. Neu: tools/autologon_lock.ps1 prueft die Systemlaufzeit
und sperrt nur, wenn der Rechner < 3 min laeuft (= Auto-Logon nach Boot).
Trocken getestet: bei 1088 min Laufzeit -> sperrt nicht.

Beide .ps1 mit BOM geschrieben und mit dem echten 5.1-Parser gegengeprueft
(0 Fehler). check_nfalle.py Stufe C2 deckt alle drei Skripte ab.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-07 06:42:28 +02:00
co-authored by Claude Opus 5
parent da863371d3
commit eccc13f2cf
3 changed files with 121 additions and 40 deletions
+16
View File
@@ -284,6 +284,22 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
Passwort steht **nicht** im Skript und wird nirgends gespeichert; es wird im
Autologon-Dialog eingegeben. **Zurück:** `Autologon /accepteula` → Disable, und
`schtasks /Delete /TN OilAutoLogonLock /F`.
⚠⚠ **ZWEI FEHLER IM ERSTEN VERSUCH (07.08., beide behoben) — beide von der
Sorte, die Erfolg meldet, wo keiner war:**
**(1)** `$ErrorActionPreference = 'Stop'` PLUS `schtasks /Delete` auf eine noch
nicht existierende Aufgabe → native Programme schreiben nach stderr, PowerShell
macht daraus unter `Stop` einen **Abbruch**. Das Skript endete, BEVOR `/Create`
lief; die Sperr-Aufgabe existierte nie. Jetzt wird vorher per `/Query` geprüft.
**(2)** Die Erfolgsmeldung **log**: ein fehlendes `DefaultPassword` wurde als
„LSA-Secret ✅" ausgegeben — dabei war schlicht **gar nichts** gesetzt (der
Autologon-Dialog war ohne *Enable* geschlossen worden). Jetzt ist
**`AutoAdminLogon = 1` die Bedingung**, und erst danach wird über die
Speicherart geurteilt; ohne aktives Auto-Logon bricht das Skript mit Code 1 ab
und überspringt Schritt 2.
**Und ein Design-Fehler: die Sperre hätte bei JEDER Anmeldung gefeuert.** Ein
`ONLOGON`-Trigger unterscheidet nicht. Deshalb prüft `tools/autologon_lock.ps1`
jetzt die **Systemlaufzeit** — gesperrt wird nur, wenn der Rechner **< 3 min**
läuft (= Auto-Logon nach Boot). Nach manueller Anmeldung passiert nichts.
- **⚠⚠ .ps1 MIT NICHT-ASCII BRAUCHT EIN BOM — sonst bricht `powershell.exe` 5.1
(2026-08-07, real passiert).** Das Autologon-Skript ließ sich nicht ausführen:
„Schließende ) fehlt", „Zeichenfolge hat kein Abschlusszeichen". Es war **kein**