PowerShell-Skripte verringern die manuelle Ausführung sich wiederholender Aufgaben. Wenn Sie häufig Skripte zu vordefinierten Zeiten oder in bestimmten Zeitintervallen ausführen, sind Sie es vielleicht leid, Skripte immer wieder auszuführen. Dann können Sie den Taskplaner von Windows verwenden, um die Skriptausführung für Sie zu automatisieren. So sparen Sie Zeit und Mühe bei der täglichen/wöchentlichen Ausführung von Skripts. Sehen wir uns an, wie Sie ein PowerShell-Skript über den Taskplaner planen können.
Es gibt zwei Möglichkeiten.
1.Planen Sie ein PowerShell-Skript mit der Taskplaner-GUI
2.PowerShell-Skript über den Taskplaner mit PowerShell planen
- Methode 1: PowerShell-Skript über den Taskplaner planen
- PowerShell-Skript vom Aufgabenplaner mit Parametern automatisieren
- Methode 2: Planen von PowerShell-Skripten aus dem Aufgabenplaner mit PowerShell
- Definieren Sie die Zeit für den Scheduler:
- Set Actions to be Performed During Execution:
- Save Scheduler:
- Verwendungsfälle:
Methode 1: PowerShell-Skript über den Taskplaner planen
Öffnen Sie den Taskplaner (Sie finden ihn in den ‘Verwaltungstools’ oder indem Sie ‘Windows+R’ drücken, um Ausführen zu öffnen und dann „taskschd.msc“ eingeben.)
Um ein Skript über den Taskplaner auszuführen, führen Sie die folgenden Schritte aus.
1.Öffnen Sie den Taskplaner -> Taskplaner-Bibliothek -> Task erstellen
2.Auf der Registerkarte „Allgemein“ können Sie den Namen des Taskplaners und eine Beschreibung des Tasks festlegen, z. B. für welchen Zweck der Task erstellt wurde.
Die verfügbaren Sicherheitsoptionen werden im Folgenden erläutert.
- Bestimmen Sie den Benutzer, in dessen Namen die Aufgabe ausgeführt werden soll.
- Sie können angeben, dass eine Aufgabe ausgeführt werden soll. Dazu wählen Sie ein Optionsfeld mit der Bezeichnung ‘Ausführen, wenn der Benutzer nicht angemeldet ist’. Wenn dieses Optionsfeld aktiviert ist, wird die Aufgabe nicht interaktiv ausgeführt. Um eine Aufgabe interaktiv auszufÃ?hren, wÃ?hlen Sie das Optionsfeld ’Nur ausfÃ?hren, wenn der Benutzer angemeldet ist’.
- Wenn das Optionsfeld ‘AusfÃ?hren, ob der Benutzer angemeldet ist oder nicht’ gewÃ?hlt wird, können Sie aufgefordert werden, die Anmeldeinformationen des Kontos einzugeben, unabhÃ?ngig davon, ob Sie das KontrollkÃ?stchen ‘Kennwort nicht speichern’ aktivieren oder nicht. Wenn das Konto während der Ausführung der Aufgabe nicht angemeldet ist, werden die gespeicherten Anmeldeinformationen verwendet.
- Wenn die Aufgabe erhöhte Rechte erfordert, wählen Sie die Option ‘Ausführen mit höchsten Rechten’
3.Wechseln Sie zur Registerkarte Auslöser und klicken Sie auf die Schaltfläche Neu. Hier können Sie Bedingungen festlegen, die eine Aufgabe auslösen.
- Sie können angeben, wann die Aufgabe gestartet werden soll. Sie können sie z. B. nach einem Zeitplan, beim Start, bei der Anmeldung oder immer dann ausführen lassen, wenn ein bestimmtes Ereignis eintritt, indem Sie das Dropdown-Menü ‘Beginnen Sie die Aufgabe’ auswählen.
- Sie können konfigurieren, ob Sie diese Aufgabe je nach Szenario einmal, täglich, wöchentlich oder monatlich ausführen möchten.
- In den „Erweiterten Einstellungen“ können Sie wählen, ob die Aufgabe verzögert werden soll, ob sie wiederholt werden soll oder ob sie angehalten werden soll, wenn sie länger als die angegebene Zeitspanne und das Ablaufdatum läuft.
- Aufgabe verzögern um bis – Dies fügt eine zufällige Verzögerung hinzu, so dass die Aufgabe nicht genau zur Tageszeit ausgeführt wird.
- Aufgabe wiederholen alle – Dies zeigt an, wie oft eine Aufgabe ausgeführt werden soll, nachdem ein Auslöser abgefeuert wurde.
- Aufgabe wiederholen alle – Zeitintervall zwischen den einzelnen Aufgabenwiederholungen
- Für eine Dauer von- Wie lange eine Aufgabe wiederholt werden soll
- Aufgabe stoppen, wenn sie länger als- Wenn die Aufgabe länger als die erwartete Zeit läuft oder nie beendet wird, wird die Aufgabe automatisch gestoppt, wenn sie die genannte Zeitgrenze erreicht.
- Ablaufen – Nach der angegebenen Zeitspanne wird der Zeitplan nicht mehr ausgelöst.
4.öffnen Sie dann die n�chste Registerkarte ‘Aktionen’ und klicken Sie auf die Schaltfl�che ‘Neu’.
- In der Dropdown-Liste „Aktion“ ist standardmÃ?ßig „Programm starten“ eingestellt. Sie können dies bei Bedarf ändern.
- Wählen Sie mit Durchsuchen das Feld Programm/Skript. Um ein Skript zu planen, müssen wir powershell.exe auswählen.
Sie finden powershell.exe im Ordner system32\WindowsPowerShell\v1.0.
- In ‘Add arguments’ ist der Parameter -File standardmäßig eingestellt, geben Sie also einfach den Skriptpfad an. Ich werde zum Beispiel ein Skript planen, das den MFA-Statusbericht für Office 365-Benutzer exportiert.
PowerShell
1
|
c:\GetMFAStatus.ps1
|
Wenn der Pfad ein Leerzeichen enthält, sollte er in Anführungszeichen gesetzt werden.
5.Nach der Konfiguration können Sie Bedingungen angeben, um zu bestimmen, ob die Aufgabe ausgeführt werden soll. Die Aufgabe wird nicht ausgeführt, wenn eine der hier angegebenen Bedingungen nicht zutrifft.
6.Auf der Registerkarte Einstellungen können Sie zusätzliche erweiterte Einstellungen festlegen, um die Ausführung der Aufgabe zu steuern.
Klicken Sie abschließend auf Ok, um ein geplantes Skript zu erstellen.
Das geplante Skript wird wie erwartet gemäß Ihrem Zeitplan ohne Probleme ausgeführt. Wenn Sie die Ausführung des Skripts überprüfen möchten, können Sie auf Ausführen klicken, indem Sie mit der rechten Maustaste auf den Aufgabennamen klicken.
PowerShell-Skript vom Aufgabenplaner mit Parametern automatisieren
Wenn Sie das PowerShell-Skript mit Parametern planen möchten, verwenden Sie das folgende Format.       Â
PowerShell
1
|
Skript Pfad -Param 1 Value1 -Param2 „Value 2“
|
Zum Beispiel, Ich werde eines unserer PowerShell-Skripte automatisieren: MFA-Statusbericht für Office 365-Benutzer exportieren
Während des Zeitplans können Sie die Anmeldeinformationen explizit als Parameter übergeben, wie unten gezeigt:
PowerShell
1
|
C:\GetMFAStatus.ps1 -Benutzername „XXX XX“ -Passwort ****
|
Wenn der Parameterwert Leerzeichen enthält, sollten die Werte in Anführungszeichen gesetzt werden.
Wenn Sie einen Switch-Parameter übergeben wollen, können Sie folgende Syntax verwenden.
PowerShell
1
|
 C:\GetMFAStatus.ps1 -EnabledOnly
|
Das obige Skript exportiert den MFA-Status von Office 365-Benutzern, deren MFA-Status aktiviert ist. Hier ist -EnabledOnly ein Switch-Parameter.
Weitere PowerShell-Skripte für Office 365 finden Sie im Blog von O365Reports.com.
Methode 2: Planen von PowerShell-Skripten aus dem Aufgabenplaner mit PowerShell
Anstelle der grafischen Benutzeroberfläche können Sie PowerShell-Cmdlets verwenden, um Aufgaben zu erstellen, die PowerShell-Skripte automatisieren. Es umfasst die folgenden Schritte:
1.Definieren Sie die Zeit für den Scheduler
2.Legen Sie die Aktionen fest, die während der Ausführung ausgeführt werden sollen
3.Speichern Sie den Scheduler
Definieren Sie die Zeit für den Scheduler:
New-SchdeuledTaskTrigger erstellt ein Triggerobjekt für eine geplante Aufgabe. Mit diesem Cmdlet können Sie die Startzeit einer Aufgabe festlegen oder eine Aufgabe mehrmals täglich oder wöchentlich starten.
PowerShell
1
|
$Time=New-ScheduledTaskTrigger -At 4.00PM -Once
|
Das obige cmd erstellt einen geplanten Task-Trigger, der um 4PM startet und einmal ausgeführt wird.
PowerShell
1
|
  $Time=New-ScheduledTaskTrigger -At 4.00PM -Daily -DaysInterval 2
|
Der obige cmd erstellt einen geplanten Task-Trigger, der alle 2 Tage um 4PM startet
Set Actions to be Performed During Execution:
New-SchdeuledTaskAction stellen Aktionen dar, die ausgeführt werden, wenn der Task Scheduler den Task ausführt. Eine Aufgabe kann eine einzelne Aktion oder bis zu 32 Aktionen haben. Wenn Sie mehrere Aktionen angeben, führt Task Scheduler eine Aufgabe nacheinander aus.  Â
Dieser Befehl öffnet eine PowerShell und ändert das Verzeichnis in C:/Scripts und ruft dann das Skript MFAStatus.ps1 auf.
Save Scheduler:
Register-ScheduledTask speichert die geplante Aufgabe auf einem lokalen Computer.
PowerShell
1
|
Register-.ScheduledTask -TaskName „Schedule MFA Status Report“ -Trigger $Time -Action $Action -RunLevel Highest
|
Der obige cmd speichert eine geplante Aufgabe mit dem Namen „Schedule MFA Status Report“ im Stammordner. Die gespeicherte Aufgabe verwendet die vorab erstellten Aktions- und Auslösewerte, die durch die Variablen $Action und $Time angegeben werden.
Verwendungsfälle:
Mit dem Aufgabenplaner können Sie ein PowerShell-Skript für die regelmäßige Ausführung planen. So müssen Sie ein Skript nicht täglich/wöchentlich/monatlich manuell ausführen. Im Internet sind weitere Skripte verfügbar, die mit dem Scheduler kompatibel sind (Anmeldeinformationen können als Parameter übergeben werden, anstatt sie im Skript zu speichern). Ich habe hier einige Beispiele angeführt.
- Verfolgen des Anmeldeverlaufs von Office 365-Benutzern – Behalten des Audit-Protokolls für mehr als 90 Tage
- Periodischer Bericht über den MFA-Status von Office 365-Benutzern
- Planen des Berichts über die letzte Anmeldezeit von Office 365-Benutzern
- Planen des Berichts über die Office 365-Postfachberechtigung
- Planen des Lizenzberichts von Office 365-Benutzern
- Planen PowerShell-Skript zur Mitgliedschaft in Verteilergruppen
- Planen des PowerShell-Skripts zur dynamischen Mitgliedschaft in Verteilergruppen
- Periodischer Bericht zum Bericht über die letzte Aktivität von Office 365-Benutzern
- Planen des PowerShell-Berichts zum Anmeldeverlauf von Office 365-Benutzern
- Periodischer Export des Berichts über die Berechtigung für gemeinsam genutzte Postfächer
- Planen des Berichts über den nichtPostfachzugriffsbericht für Nicht-Besitzer
- Office 365-Benutzer-Passwortablaufbericht
In diesem Blog, haben wir gesehen, wie man ein PowerShell-Skript mit dem Taskplaner automatisiert.Welchen Ansatz bevorzugen Sie, wenn es um die Planung geht – GUI oder PowerShell? Lassen Sie es uns in den Kommentaren wissen.