<# .SYNOPSIS Registriert den GerbilManager-Backup als taegliche geplante Aufgabe (03:00 Uhr). .DESCRIPTION Erstellt eine geplante Aufgabe, die Backup-GerbilManager.ps1 taeglich um 03:00 Uhr ausfuehrt. Backups werden 7 Tage lang aufbewahrt. .PARAMETER BackupTime Uhrzeit fuer das taeliche Backup. Standard: 03:00 .NOTES Erfordert: PowerShell als Administrator ausfuehren Aufgabenname: GerbilManager Backup #> #Requires -RunAsAdministrator param( [string]$BackupTime = "03:00" ) Set-StrictMode -Version Latest $ErrorActionPreference = "Stop" $taskName = "GerbilManager Backup" $scriptPath = Join-Path $PSScriptRoot "Backup-GerbilManager.ps1" $logPath = "C:\gerbil-data\backups\backup.log" if (-not (Test-Path $scriptPath)) { Write-Error "Backup-Skript nicht gefunden: $scriptPath" exit 1 } # Backup-Verzeichnis vorab anlegen New-Item -ItemType Directory -Force -Path "C:\gerbil-data\backups" | Out-Null Write-Host "Registriere Backup-Aufgabe '$taskName' (taeglich $BackupTime)..." $action = New-ScheduledTaskAction ` -Execute "powershell.exe" ` -Argument "-NonInteractive -WindowStyle Hidden -ExecutionPolicy Bypass -File `"$scriptPath`" >> `"$logPath`" 2>&1" $trigger = New-ScheduledTaskTrigger -Daily -At $BackupTime $settings = New-ScheduledTaskSettingsSet ` -ExecutionTimeLimit (New-TimeSpan -Hours 1) ` -StartWhenAvailable ` -WakeToRun ` -MultipleInstances IgnoreNew $principal = New-ScheduledTaskPrincipal ` -UserId $env:USERNAME ` -LogonType Interactive ` -RunLevel Highest Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction SilentlyContinue Register-ScheduledTask ` -TaskName $taskName ` -Action $action ` -Trigger $trigger ` -Settings $settings ` -Principal $principal ` -Description "Taegiches Backup der GerbilManager-Datenbank und Fotos um $BackupTime Uhr." ` -Force | Out-Null Write-Host "Backup-Aufgabe registriert: '$taskName'" Write-Host "Backups werden taeglich um $BackupTime Uhr nach C:\gerbil-data\backups\ gesichert." Write-Host "Protokoll: $logPath" Write-Host "" Write-Host "Backup jetzt testen: & `"$scriptPath`""