nearline: S4U-Root-Cause dokumentiert + Exitcode-Leak gefixt

Diagnose 2026-06-21: Der Scheduled Task "KalliLab H Drive Nearline Pull"
lief als LogonType S4U (ohne gespeichertes Passwort) und hatte damit keine
Netzwerk-Anmeldeinformationen fuer den SMB-Share \192.168.178.58\backups.
Jeder geplante 05:30-Lauf brach still mit Exit 1 ab, ohne Report; der
Nearline-Spiegel war 2026-06-19 bis 2026-06-21 veraltet. Manuell nachgezogen,
Spiegel wieder frisch.

pull-critical-backups.ps1: explizites `exit 0` auf dem Erfolgspfad, damit der
letzte robocopy-Exitcode (1 = "Dateien kopiert") nicht als Prozess-Exit leakt
und der Scheduled Task ein wahrheitsgemaesses Ergebnis meldet.

README: Pflicht-Hinweis, dass der Task mit gespeichertem Passwort (nicht S4U)
laufen muss. MASTER_TODO: Root-Cause + verbleibender Operator-Schritt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-21 18:02:58 +02:00
parent f296338530
commit 1a4593110a
3 changed files with 19 additions and 2 deletions
+14 -1
View File
@@ -35,7 +35,20 @@ Abschluss zu löschen.
Der Windows Scheduled Task `KalliLab H Drive Nearline Pull` laeuft seit
2026-05-28 taeglich 05:30. Das Script kopiert bewusst **nicht** mit `/MIR` und
loescht nichts auf H:/; alte Artefakte werden nur nach manueller Sichtpruefung
entfernt. Aufruf zum Testen:
entfernt.
> **Wichtig — Task-LogonType:** Der Task muss mit "Ausfuehren, auch wenn der
> Benutzer nicht angemeldet ist" **und gespeichertem Passwort** laufen
> (LogonType `Password`). Mit `S4U` (ohne gespeichertes Passwort) hat der Lauf
> keine Netzwerk-Anmeldeinformationen und erreicht den authentifizierten
> SMB-Share `\\192.168.178.58\backups` nicht -> jeder geplante Lauf bricht
> still mit Exitcode 1 ab, ohne Report. Genau das passierte 2026-06-19 bis
> 2026-06-21 (Spiegel still veraltet), bis am 2026-06-21 manuell nachgezogen
> wurde. Manuelle Laeufe in einer interaktiven Sitzung funktionieren, weil die
> Sitzung die SMB-Creds hat. Das ist auch der Grund fuer den externen
> Dead-Man's-Switch unten.
Aufruf zum Testen:
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File G:\Gitea_Clone\homelab-infra\ops\h-drive-nearline\pull-critical-backups.ps1 -WhatIf
@@ -216,6 +216,10 @@ try {
Write-Host "Report: $reportPath"
Send-HealthcheckPing
# Explizit erfolgreich beenden: sonst leakt der letzte robocopy-Exitcode
# (1 = "Dateien kopiert") als Prozess-Exit und der Scheduled Task meldet
# 0x1, obwohl der Lauf sauber war.
exit 0
} catch {
Send-HealthcheckPing "/fail"
throw