- PowerShell 100%
| PowerShell 7.x/src | ||
| README.md | ||
README
Preamble
Dieses PowerShell Script legt einen neuen Task in der Aufgabenplanung an, welcher täglich ein PowerShell Script aufruft, das in bestimmten Verzeichnissen eine Bereinigung der Dateien durch- führt.
...
Um den Trigger-Zeitpunkt flexibel per Parameter zu steuern, verpacken Sie Ihr Skript in eine Funktion oder nutzen einen param()-Block am Anfang der Datei. Dabei setzen Sie den Standardwert für den Parameter einfach auf 21:00 Uhr des aktuellen Tages. Wird das Skript ohne Parameter aufgerufen, greift automatisch diese Vorgabe.
Das angepasste PowerShell-Skript
Ersetzen Sie Ihr gesamtes Skript durch diesen Code. Sie können ihn als .ps1-Datei abspeichern.
param ( [Parameter(Mandatory=$false)] [datetime]$StartZeit = ((Get-Date).Date.AddHours(21)) # Standardwert: Heute um 21:00 Uhr )
1. Name und Beschreibung der Aufgabe definieren
$TaskName = "Einmaliger_Server_Neustart_Heute" $TaskDescription = "Startet den Server einmalig um $($StartZeit.ToString('HH:mm')) Uhr neu unter Verwendung des SYSTEM-Kontos."
2. Aktion definieren (shutdown.exe mit den Argumenten für den Neustart)
$Action = New-ScheduledTaskAction -Execute "shutdown.exe" -Argument "/r /t 0 /f"
3. Trigger definieren (Nutzt die übergebene oder die Standard-Zeit)
$Trigger = New-ScheduledTaskTrigger -Once -At $StartZeit
4. Sicherheitskonfiguration festlegen (SYSTEM-Konto mit hoechsten Privilegien)
$Principal = New-ScheduledTaskPrincipal -UserId "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest
5. Einstellungen für die Aufgabe festlegen (Inklusive Zeitlimit von 1 Stunde)
$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries
-DontStopIfGoingOnBatteries `
-ExecutionTimeLimit ([TimeSpan]::FromHours(1))
6. Registrieren der neuen Aufgabe in der Aufgabenplanung
Register-ScheduledTask -TaskName $TaskName -Description $TaskDescription -Action $Action -Trigger $Trigger -Principal $Principal -Settings $Settings -Force
Write-Host "Die Aufgabe '$TaskName' wurde erfolgreich angelegt. Geplanter Start: $($StartZeit.ToString('dd.MM.yyyy HH:mm')) Uhr." -ForegroundColor Green
So rufen Sie das Skript jetzt auf
Option 1: Ohne Parameter (Standardzeit 21:00 Uhr) [1]
.\MeinSkript.ps1
Option 2: Mit Parameter für eine andere Uhrzeit heute (z. B. 23:30 Uhr)
.\MeinSkript.ps1 -StartZeit "23:30"
Option 3: Mit Parameter für ein komplett anderes Datum und Uhrzeit
.\MeinSkript.ps1 -StartZeit "24.12.2026 02:00"
Möchten Sie das Skript so erweitern, dass sich die Aufgabe nach erfolgreicher Ausführung automatisch selbst löscht, um die Aufgabenplanung sauber zu halten?