Auto-Logon aktiv — Registry-Weg, sicherer Weg blieb wirkungslos
Endstand verifiziert: AutoAdminLogon=1, DefaultUserName=ah, DefaultDomainName=HOMEBASE, Aufgabe OilAutoLogonLock Bereit und auf autologon_lock.ps1 zeigend. Die Boot-Luecke ist damit konfiguratorisch geschlossen. ⚠ Der SICHERE Weg hat nicht funktioniert: Sysinternals Autologon beendete sich mit ExitCode 0, schrieb aber nichts — weder ueber den Dialog noch ueber die Argument-Form. Ausgeschlossen: DevicePasswordLessBuildVersion (nicht gesetzt), fehlende Elevation, haengender Prozess. Ursache ungeklaert. Aktiv ist deshalb der Registry-Weg, und damit steht das Passwort im KLARTEXT unter HKLM\...\Winlogon\DefaultPassword — lesbar fuer jeden lokalen Admin und jedes Backup-Image. Entfernen-Kommando in CLAUDE.md. ⚠ Dritter Fall derselben Fehlerklasse in diesem Skript, jetzt behoben: die Speicherart wurde aus einer stale Variable gelesen, die VOR dem Registry-Schreiben gefuellt war. Die Ausgabe widersprach sich direkt — erst korrekt 'steht jetzt im KLARTEXT', zwei Zeilen spaeter 'nicht im Klartext ✅'. Der Zustand wird jetzt nach jedem Schreibvorgang frisch gelesen. Lehre aus allen drei Faellen: eine Erfolgsmeldung muss den Zustand NACH der Aktion pruefen, nicht den davor. Offen: die Wirkung ist erst beim naechsten Reboot belegt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
bdff39a278
commit
41e527c492
@@ -259,7 +259,7 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
|||||||
Anteil, WR-Verfall, PF<1, Einzelverlust). **Wöchentlich** laufen lassen (B4/B5).
|
Anteil, WR-Verfall, PF<1, Einzelverlust). **Wöchentlich** laufen lassen (B4/B5).
|
||||||
- **Vor „fertig":** immer `python -m py_compile <datei>`; JS grob via Klammern-
|
- **Vor „fertig":** immer `python -m py_compile <datei>`; JS grob via Klammern-
|
||||||
Balance prüfen (kein node im Env).
|
Balance prüfen (kein node im Env).
|
||||||
- **⚠ BOOT-LÜCKE: Auto-Logon vorbereitet, aber NICHT abgeschlossen (2026-08-07).**
|
- **✅ BOOT-LÜCKE GESCHLOSSEN: Auto-Logon AKTIV (2026-08-07).**
|
||||||
`OilTradingServer` und `HyperliquidDashboard` hängen an einem **Logon**-Trigger
|
`OilTradingServer` und `HyperliquidDashboard` hängen an einem **Logon**-Trigger
|
||||||
— nach einem Update-Reboot läuft nichts bis zur Anmeldung (real 20.07.:
|
— nach einem Update-Reboot läuft nichts bis zur Anmeldung (real 20.07.:
|
||||||
Reboot 01:30, Server bis 07:42 tot, −95,48 €). ⚠ Ein Task „ohne angemeldete
|
Reboot 01:30, Server bis 07:42 tot, −95,48 €). ⚠ Ein Task „ohne angemeldete
|
||||||
@@ -311,6 +311,30 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
|||||||
`ONLOGON`-Trigger unterscheidet nicht. Deshalb prüft `tools/autologon_lock.ps1`
|
`ONLOGON`-Trigger unterscheidet nicht. Deshalb prüft `tools/autologon_lock.ps1`
|
||||||
jetzt die **Systemlaufzeit** — gesperrt wird nur, wenn der Rechner **< 3 min**
|
jetzt die **Systemlaufzeit** — gesperrt wird nur, wenn der Rechner **< 3 min**
|
||||||
läuft (= Auto-Logon nach Boot). Nach manueller Anmeldung passiert nichts.
|
läuft (= Auto-Logon nach Boot). Nach manueller Anmeldung passiert nichts.
|
||||||
|
⚠⚠ **ENDSTAND — der SICHERE Weg hat NICHT funktioniert.** Sysinternals
|
||||||
|
`Autologon` beendete sich mit **ExitCode 0**, schrieb aber **nichts** (weder
|
||||||
|
über den Dialog noch über die Argument-Form). Ausgeschlossen wurden: der
|
||||||
|
Windows-11-Blocker `DevicePasswordLessBuildVersion` (nicht gesetzt), fehlende
|
||||||
|
Elevation (Admin-Prüfung bestand), ein hängender Prozess. **Ursache ungeklärt.**
|
||||||
|
Aktiv ist deshalb der **Registry-Weg** — verifiziert:
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
| `AutoAdminLogon` | **1** |
|
||||||
|
| `DefaultUserName` / `DefaultDomainName` | `ah` / `HOMEBASE` |
|
||||||
|
| `DefaultPassword` | ⚠ **KLARTEXT** (Länge 4) |
|
||||||
|
| Aufgabe `OilAutoLogonLock` | **Bereit**, läuft als `ah`, ruft `autologon_lock.ps1` |
|
||||||
|
⚠ Das Passwort ist damit für **jeden lokalen Administrator und jedes
|
||||||
|
Backup-Image** lesbar. Entfernen (deaktiviert zugleich den Auto-Logon):
|
||||||
|
`Remove-ItemProperty -Path 'HKLM:\…\Winlogon' -Name DefaultPassword`.
|
||||||
|
⚠ **Offen:** die Wirkung ist erst beim **nächsten Reboot** belegt — bis dahin
|
||||||
|
ist nur die Konfiguration verifiziert, nicht das Verhalten.
|
||||||
|
⚠⚠ **DRITTER Fall derselben Fehlerklasse in diesem einen Skript** (Erfolg
|
||||||
|
melden, wo keiner ist): die Speicherart wurde aus einer **stale** Variable
|
||||||
|
gelesen, die VOR dem Registry-Schreiben gefüllt war — die Ausgabe widersprach
|
||||||
|
sich direkt („steht jetzt im KLARTEXT" … zwei Zeilen später „nicht im Klartext
|
||||||
|
✅"). Behoben: der Zustand wird nach jedem Schreibvorgang **frisch gelesen**.
|
||||||
|
Die drei Fälle zusammen sind die Lehre: **eine Erfolgsmeldung muss den Zustand
|
||||||
|
NACH der Aktion prüfen, nicht den davor.**
|
||||||
- **⚠⚠ .ps1 MIT NICHT-ASCII BRAUCHT EIN BOM — sonst bricht `powershell.exe` 5.1
|
- **⚠⚠ .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:
|
(2026-08-07, real passiert).** Das Autologon-Skript ließ sich nicht ausführen:
|
||||||
„Schließende ) fehlt", „Zeichenfolge hat kein Abschlusszeichen". Es war **kein**
|
„Schließende ) fehlt", „Zeichenfolge hat kein Abschlusszeichen". Es war **kein**
|
||||||
|
|||||||
@@ -192,8 +192,6 @@ if (-not $aktiv) {
|
|||||||
$aktiv = ($an -eq '1')
|
$aktiv = ($an -eq '1')
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
Write-Host " AutoAdminLogon : $an"
|
Write-Host " AutoAdminLogon : $an"
|
||||||
Write-Host " ⚠ DefaultPassword steht jetzt im KLARTEXT in der Registry." -ForegroundColor Yellow
|
|
||||||
Write-Host " Entfernen mit: Remove-ItemProperty -Path '$k' -Name DefaultPassword"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (-not $aktiv) {
|
if (-not $aktiv) {
|
||||||
@@ -201,6 +199,22 @@ if (-not $aktiv) {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ⚠⚠ NEU EINLESEN, NICHT den alten Wert wiederverwenden. Beim ersten Bau stand
|
||||||
|
# hier eine stale Variable aus der Zeit VOR dem Registry-Schreiben — die Ausgabe
|
||||||
|
# widersprach sich dann direkt: erst korrekt "steht jetzt im KLARTEXT", zwei
|
||||||
|
# Zeilen spaeter "nicht im Klartext (LSA-Secret) ✅". DRITTER Fall derselben
|
||||||
|
# Fehlerklasse in diesem Skript (Erfolg melden, wo keiner ist bzw. wo das
|
||||||
|
# Gegenteil zutrifft). Der Zustand wird deshalb immer frisch gelesen.
|
||||||
|
$klartext = (Get-ItemProperty -Path $k -Name DefaultPassword -EA SilentlyContinue).DefaultPassword
|
||||||
|
Write-Host ""
|
||||||
|
if ($klartext) {
|
||||||
|
Write-Host " SPEICHERART: ⚠ Passwort im KLARTEXT in der Registry." -ForegroundColor Yellow
|
||||||
|
Write-Host " Entfernen (deaktiviert damit auch den Auto-Logon):"
|
||||||
|
Write-Host " Remove-ItemProperty -Path '$k' -Name DefaultPassword"
|
||||||
|
} else {
|
||||||
|
Write-Host " SPEICHERART: verschluesseltes LSA-Secret ✅" -ForegroundColor Green
|
||||||
|
}
|
||||||
|
|
||||||
if ($klartext) {
|
if ($klartext) {
|
||||||
Write-Host " DefaultPassword : ⚠ KLARTEXT in der Registry!" -ForegroundColor Yellow
|
Write-Host " DefaultPassword : ⚠ KLARTEXT in der Registry!" -ForegroundColor Yellow
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user