# Richtet die Windows-Aufgabe "Trading Plattform - Abendkontrolle" ein oder entfernt sie. # Koordinator-Werkzeug, nicht fuers Repo. Auftrag Pascal 2026-09-24: taegliche Abendkontrolle, # dauerhaft, uebersteht Neustarts, blockiert keine Updates von Claude Code oder Desktop. # # Zwei Ausloeser: werktags 22:45 (nach der Tagesauswertung um 22:20) und fuenf Minuten nach jeder # Anmeldung (holt einen verpassten Abend nach; abendkontrolle.py prueft nur Tage ohne Ergebnisdatei). # Nur bei angemeldetem Benutzer (Interactive): WSL und der ganze Paper-Betrieb brauchen die Anmeldung # ohnehin (Aufgabe "Trading Plattform - WSL wachhalten"). pythonw.exe startet ohne Fenster. # Voller Interpreterpfad: -Execute "python" endet in der Aufgabenplanung mit 0x80070002. # # Aufruf: powershell -NoProfile -File abendkontrolle_einrichten.ps1 [-Aktion einrichten|entfernen] param( [ValidateSet("einrichten", "entfernen")] [string]$Aktion = "einrichten" ) $Name = "Trading Plattform - Abendkontrolle" if ($Aktion -eq "entfernen") { Unregister-ScheduledTask -TaskName $Name -Confirm:$false return } $Py = "C:\Users\Pascal Michel\AppData\Local\Programs\Python\Python313\pythonw.exe" $Skript = "D:\Claude\.vault-tools\trading-plattform-pruefung\abendkontrolle.py" if (-not (Test-Path $Py)) { throw "Interpreter fehlt: $Py" } if (-not (Test-Path $Skript)) { throw "Skript fehlt: $Skript" } $Benutzer = "$env:USERDOMAIN\$env:USERNAME" $Aufruf = New-ScheduledTaskAction -Execute $Py -Argument ('"' + $Skript + '"') -WorkingDirectory "D:\Claude" $Abends = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday, Tuesday, Wednesday, Thursday, Friday -At "22:45" $Anmeldung = New-ScheduledTaskTrigger -AtLogOn -User $Benutzer $Anmeldung.Delay = "PT5M" $Wer = New-ScheduledTaskPrincipal -UserId $Benutzer -LogonType Interactive -RunLevel Limited $Regeln = New-ScheduledTaskSettingsSet -StartWhenAvailable -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries ` -ExecutionTimeLimit (New-TimeSpan -Minutes 45) -MultipleInstances IgnoreNew Register-ScheduledTask -TaskName $Name -Action $Aufruf -Trigger @($Abends, $Anmeldung) -Principal $Wer ` -Settings $Regeln -Force ` -Description "Abendkontrolle des Paper-Betriebs: liest nur, schreibt in die Tagesnotiz, meldet Befunde per ntfy. Koordinator-Werkzeug, siehe abendkontrolle.py." | Out-Null $Aufgabe = Get-ScheduledTask -TaskName $Name "{0}: {1}" -f $Aufgabe.TaskName, $Aufgabe.State $Aufgabe.Triggers | ForEach-Object { "Ausloeser: {0} {1} {2}" -f $_.CimClass.CimClassName, $_.StartBoundary, $_.Delay } "Naechster Lauf: {0}" -f (Get-ScheduledTaskInfo -TaskName $Name).NextRunTime