Verwalten von Zeitplänen in Azure Automation

Um ein Runbook in Azure-Automation für die Ausführung zu einer bestimmten Uhrzeit zu planen, müssen Sie es mit einem oder mehreren Zeitplänen verknüpfen. Ein Zeitplan kann so konfiguriert werden, dass er entweder einmalig oder nach einem sich wiederholenden stündlichen oder täglichen Zeitplan für Runbooks im Azure-Portal ausgeführt wird. Sie können Zeitpläne auch wöchentlich, monatlich, für bestimmte Wochentage oder Tage des Monats oder einen bestimmten Tag des Monats festlegen. Ein Runbook kann mit mehreren Zeitplänen verknüpft werden, und mit einem Zeitplan können mehrere Runbooks verknüpft sein.

Hinweis

Azure Automation unterstützt die Sommerzeit und plant entsprechend für Automatisierungsvorgänge.

Hinweis

Zeitpläne sind derzeit nicht für Azure Automation DSC-Konfigurationen aktiviert.

PowerShell-Cmdlets für den Zugriff auf Zeitpläne

Über die Cmdlets in der folgenden Tabelle können Sie Zeitpläne für Automation mit PowerShell erstellen und verwalten. Diese sind im Lieferumfang der Az-Module enthalten.

Cmdlets Beschreibung
Get-AzAutomationSchedule Ruft einen Zeitplan ab.
Get-AzAutomationScheduledRunbook Ruft geplante Runbooks ab.
New-AzAutomationSchedule Erstellt einen neuen Zeitplan.
Register-AzAutomationScheduledRunbook Ordnet ein Runbook einem Zeitplan zu.
Remove-AzAutomationSchedule Entfernt einen Zeitplan.
Set-AzAutomationSchedule Legt die Eigenschaften für einen vorhandenen Zeitplan fest.
Unregister-AzAutomationScheduledRunbook Hebt die Zuordnung eines Runbook zu einem Zeitplan auf.

Erstellen eines Zeitplans

Sie können einen neuen Zeitplan für Ihre Runbooks erstellen, indem Sie das Azure-Portal, PowerShell oder eine ARM-Vorlage (Azure Resource Manager) verwenden. Zum Vermeiden von Auswirkungen auf Ihre Runbooks und die Prozesse, die Sie automatisieren, testen Sie zuerst alle Runbooks mit verknüpften Zeitplänen mit einem für Testzwecke vorgesehenen Automation-Konto. Bei einem Test wird überprüft, ob Ihre geplanten Runbooks weiterhin ordnungsgemäß funktionieren. Wenn ein Problem auftritt, können Sie es beheben und alle erforderlichen Änderungen anwenden, bevor Sie die aktualisierte Runbookversion zur Produktion migrieren.

Hinweis

Ihr Automation-Konto erhält nicht automatisch neue Versionen der Module. Dazu müssen Sie sie manuell aktualisieren, indem Sie unter Module die Option Azure-Module aktualisieren auswählen. In Azure Automation werden die neuesten Module in Ihrem Automation-Konto verwendet, wenn ein neuer geplanter Auftrag ausgeführt wird.

Erstellen eines neuen Zeitplans im Azure-Portal

  1. Wählen Sie in Ihrem Automation-Konto im linken Bereich unter Freigegebene Ressourcen die Option Zeitpläne aus.

  2. Wählen Sie auf der Seite Zeitpläne die Option Zeitplan hinzufügen aus.

  3. Geben Sie auf der Seite Neuer Zeitplan einen Namen und optional eine Beschreibung für den neuen Zeitplan ein.

    Hinweis

    Namen von Automation-Zeitplänen dürfen aktuell keine Sonderzeichen enthalten.

  4. Wählen Sie aus, ob der Zeitplan einmalig oder wiederholt ausgeführt werden soll, indem Sie Einmalig oder Wiederholt auswählen. Geben Sie bei Auswahl von Einmalig eine Startzeit an, und wählen Sie Erstellen aus. Geben Sie bei Auswahl von Wiederholt eine Startzeit an. Wählen Sie bei Wiederholen alle aus, wie oft das Runbook wiederholt werden soll. Sie können nach Stunde, Tag, Woche oder Monat auswählen.

    • Wenn Sie Woche auswählen, werden die Tage der Woche angezeigt, aus denen Sie auswählen können. Wählen Sie beliebig viele Tage aus. Die erste Ausführung Ihres Zeitplans erfolgt am ersten Tag, den Sie nach der Startzeit ausgewählt haben. Um z. B. einen Wochenendzeitplan auszuwählen, wählen Sie „Samstag“ und „Sonntag“ aus.

    Setting weekend recurring schedule

    • Bei Auswahl von Monat werden verschiedene Optionen angezeigt. Wählen Sie für die Option Monatliche Vorkommen entweder Tage im Monat oder Wochentage aus. Wenn Sie Tage im Monat auswählen, wird ein Kalender angezeigt, in dem Sie beliebig viele Tage auswählen können. Wenn Sie einen Tag wie den 31. auswählen, der im aktuellen Monat nicht vorkommt, wird der Zeitplan nicht ausgeführt. Wenn der Zeitplan am letzten Tag ausgeführt werden soll, wählen Sie unter Am letzten Tag des Monats ausführen die Option Ja aus. Bei Auswahl von Wochentage wird die Option Wiederholen alle angezeigt. Wählen Sie Erster, Zweiter, Dritter, Vierter oder Letzter aus. Wählen Sie abschließend einen Tag für die Wiederholung aus.

    Monthly schedule on first, fifteenth, and last day of the month

  5. Wählen Sie Erstellen aus, wenn Sie fertig sind.

Erstellen eines neuen Zeitplans mit PowerShell

Verwenden Sie das Cmdlet New-AzAutomationSchedule, um Zeitpläne zu erstellen. Geben Sie die Startzeit für den Zeitplan und die Häufigkeit der Ausführung an. Die folgenden Beispiele zeigen, wie Sie verschiedene Zeitplanszenarien erstellen können.

Hinweis

Namen von Automation-Zeitplänen dürfen aktuell keine Sonderzeichen enthalten.

Erstellen eines einmaligen Zeitplans

Im folgenden Beispiel wird ein einmaliger Zeitplan erstellt.

$TimeZone = ([System.TimeZoneInfo]::Local).Id
New-AzAutomationSchedule -AutomationAccountName "ContosoAutomation" -Name "Schedule01" -StartTime "23:00" -OneTime -ResourceGroupName "ResourceGroup01" -TimeZone $TimeZone

Erstellen eines sich wiederholenden Zeitplans

Das folgende Beispiel zeigt, wie Sie einen sich wiederholenden Zeitplan erstellen, der ein Jahr lang jeden Tag um 13:00 Uhr ausgeführt wird.

$StartTime = Get-Date "13:00:00"
$EndTime = $StartTime.AddYears(1)
New-AzAutomationSchedule -AutomationAccountName "ContosoAutomation" -Name "Schedule02" -StartTime $StartTime -ExpiryTime $EndTime -DayInterval 1 -ResourceGroupName "ResourceGroup01"

Erstellen eines wöchentlichen sich wiederholenden Zeitplans

Das folgende Beispiel zeigt, wie Sie einen wöchentlichen Zeitplan erstellen, der nur unter der Woche ausgeführt wird.

$StartTime = (Get-Date "13:00:00").AddDays(1)
[System.DayOfWeek[]]$WeekDays = @([System.DayOfWeek]::Monday..[System.DayOfWeek]::Friday)
New-AzAutomationSchedule -AutomationAccountName "ContosoAutomation" -Name "Schedule03" -StartTime $StartTime -WeekInterval 1 -DaysOfWeek $WeekDays -ResourceGroupName "ResourceGroup01"

Erstellen eines wöchentlichen sich wiederholenden Zeitplans für Wochenenden

Das folgende Beispiel zeigt, wie Sie einen wöchentlichen Zeitplan erstellen, der nur an Wochenenden ausgeführt wird.

$StartTime = (Get-Date "18:00:00").AddDays(1)
[System.DayOfWeek[]]$WeekendDays = @([System.DayOfWeek]::Saturday,[System.DayOfWeek]::Sunday)
New-AzAutomationSchedule -AutomationAccountName "ContosoAutomation" -Name "Weekends 6PM" -StartTime $StartTime -WeekInterval 1 -DaysOfWeek $WeekendDays -ResourceGroupName "ResourceGroup01"

Erstellen eines sich wiederholenden Zeitplans für den ersten, den 15. und den letzten Tag des Monats

Das folgende Beispiel zeigt, wie Sie einen sich wiederholenden Zeitplan erstellen, der am ersten, am 15. und am letzten Tag eines Monats ausgeführt wird.

$StartTime = (Get-Date "18:00:00").AddDays(1)
New-AzAutomationSchedule -AutomationAccountName "TestAzureAuto" -Name "1st, 15th and Last" -StartTime $StartTime -DaysOfMonth @("One", "Fifteenth", "Last") -ResourceGroupName "TestAzureAuto" -MonthInterval 1

Erstellen eines Zeitplans mithilfe einer Resource Manager-Vorlage

In diesem Beispiel verwenden wir eine ARM-Vorlage (Automation Resource Manager), die einen neuen Auftragszeitplan erstellt. Allgemeine Informationen zu dieser Vorlage für die Verwaltung von Automation-Auftragszeitplänen finden Sie in der Vorlagenreferenz für Microsoft.Automation automationAccounts/jobSchedules.

Kopieren Sie diese Vorlagendatei in einen Text-Editor:

{
  "name": "5d5f3a05-111d-4892-8dcc-9064fa591b96",
  "type": "Microsoft.Automation/automationAccounts/jobSchedules",
  "apiVersion": "2015-10-31",
  "properties": {
    "schedule": {
      "name": "scheduleName"
    },
    "runbook": {
      "name": "runbookName"
    },
    "runOn": "hybridWorkerGroup",
    "parameters": {}
  }
}

Bearbeiten Sie die folgenden Parameterwerte, und speichern Sie die Datei als JSON-Datei:

  • Name des Auftragszeitplanobjekts: Als Name des Auftragszeitplanobjekts wird eine GUID (Globally Unique Identifier, global eindeutiger Bezeichner) verwendet.

    Wichtig

    Die GUID muss für jeden Auftragszeitplan, der mit einer ARM-Vorlage bereitgestellt wird, eindeutig sein. Auch wenn Sie einen vorhandenen Zeitplan neu planen, müssen Sie die GUID ändern. Dies gilt auch dann, wenn Sie zuvor einen vorhandenen Auftragszeitplan gelöscht haben, der mit derselben Vorlage erstellt wurde. Die Wiederverwendung einer GUID führt zu einem Fehler in der Bereitstellung.

    Es gibt Online-Dienste, die eine neue GUID für Sie generieren können, wie z. B. diesen kostenlosen Online-GUID-Generator.

  • Name des Zeitplans: Der Name des Automation-Auftragszeitplans, der mit dem angegebenen Runbook verknüpft wird.

  • Runbookname: Der Name des Automation-Runbooks, dem der Auftragszeitplan zugeordnet werden soll.

Nachdem die Datei gespeichert wurde, können Sie mit folgendem PowerShell-Befehl den Zeitplan für den Runbookauftrag erstellen. Der Befehl verwendet den Parameter TemplateFile, um den Pfad und den Dateinamen der Vorlage anzugeben.

New-AzResourceGroupDeployment -ResourceGroupName "ContosoEngineering" -TemplateFile "<path>\RunbookJobSchedule.json"

Ein Runbook kann mit mehreren Zeitplänen verknüpft werden, und mit einem Zeitplan können mehrere Runbooks verknüpft sein. Wenn ein Runbook über Parameter verfügt, können Sie Werte für diese angeben. Sie müssen Werte für alle obligatorischen Parameter angeben; für optionale Parameter können Sie Werte angeben. Diese Werte werden jedes Mal verwendet, wenn das Runbook durch diesen Zeitplan gestartet wird. Sie können das gleiche Runbook einem anderen Zeitplan zuordnen und dabei andere Parameterwerte festlegen.

  1. Wählen Sie im Azure-Portal in Ihrem Automation-Konto unter Prozessautomatisierung die Option Runbooks aus.
  2. Wählen Sie den Namen des Runbooks aus, das Sie mit einem Zeitplan verknüpfen möchten.
  3. Wenn das Runbook gegenwärtig nicht mit einem Zeitplan verknüpft ist, werden Ihnen Optionen zum Erstellen eines neuen Zeitplans oder zum Verknüpfen mit einem vorhandenen Zeitplan angeboten.
  4. Wenn das Runbook über Parameter verfügt, können Sie die Option Ausführungseinstellungen ändern (Standard: Azure) auswählen, und der Bereich Parameter wird angezeigt. Hier können Sie Parameterinformationen eingeben.

Verwenden Sie das Cmdlet Register-AzAutomationScheduledRunbook, um einen Zeitplan zu verknüpfen. Sie können Werte für die Runbookparameter im Parameter "Parameters" angeben. Weitere Informationen zum Angeben von Parameterwerten finden Sie unter Starten eines Runbooks in Azure Automation. Das folgende Beispiel verdeutlicht, wie Sie einen Zeitplan mit einem Runbook verknüpfen, indem Sie ein Azure Resource Manager-Cmdlet mit Parametern verwenden.

$automationAccountName = "MyAutomationAccount"
$runbookName = "Test-Runbook"
$scheduleName = "Sample-DailySchedule"
$params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
Register-AzAutomationScheduledRunbook -AutomationAccountName $automationAccountName `
-Name $runbookName -ScheduleName $scheduleName -Parameters $params `
-ResourceGroupName "ResourceGroup01"

Planen einer häufigeren Ausführung von Runbooks

Das kürzeste Intervall, mit dem ein Zeitplan in Azure Automation konfiguriert werden kann, ist eine Stunde. Wenn Sie Zeitpläne noch häufiger ausführen müssen, stehen Ihnen zwei Optionen zur Verfügung:

  • Erstellen Sie einen Webhook für das Runbook, und rufen Sie den Webhook mit Azure Logic Apps auf. Azure Logic Apps bietet eine höhere Granularität bei der Definition von Zeitplänen.

  • Erstellen Sie vier Zeitpläne, die alle einmal pro Stunde ausgeführt werden und mit einem Abstand von 15 Minuten voneinander beginnen. In diesem Szenario kann das Runbook alle 15 Minuten mit unterschiedlichen Zeitplänen ausgeführt werden.

Deaktivieren eines Zeitplans

Wenn Sie einen Zeitplan deaktivieren, werden sämtliche damit verknüpfte Runbooks nicht mehr nach diesem Zeitplan ausgeführt. Sie können einen Zeitplan manuell deaktivieren oder während der Erstellung für Zeitpläne eine Ablaufzeit festlegen. Wenn der Ablaufzeitpunkt erreicht ist, wird der Zeitplan deaktiviert.

Deaktivieren eines Zeitplans über das Azure-Portal

  1. Wählen Sie in Ihrem Automation-Konto im linken Bereich unter Freigegebene Ressourcen die Option Zeitpläne aus.
  2. Wählen Sie den Namen eines Zeitplans aus, um den Detailbereich zu öffnen.
  3. Ändern Sie Aktiviert in Nein.

Hinweis

Wenn Sie einen Zeitplan deaktivieren möchten, dessen Startuhrzeit in der Vergangenheit liegt, müssen Sie das Startdatum auf einen Zeitpunkt in der Zukunft ändern, bevor Sie den Plan speichern.

Deaktivieren eines Zeitplans mithilfe von PowerShell

Verwenden Sie das Cmdlet Set-AzAutomationSchedule, um die Eigenschaften eines vorhandenen Zeitplans zu ändern. Geben Sie zum Deaktivieren des Zeitplans „False“ für den Parameter IsEnabled an.

Das folgende Beispiel verdeutlicht, wie Sie einen Zeitplan für ein Runbook mithilfe eines Azure Resource Manager-Cmdlets deaktivieren.

$automationAccountName = "MyAutomationAccount"
$scheduleName = "Sample-MonthlyDaysOfMonthSchedule"
Set-AzAutomationSchedule -AutomationAccountName $automationAccountName `
-Name $scheduleName -IsEnabled $false -ResourceGroupName "ResourceGroup01"

Entfernen eines Zeitplans

Wenn Sie Zeitpläne entfernen möchten, können Sie das Azure-Portal oder PowerShell verwenden. Beachten Sie, dass Sie nur Zeitpläne entfernen können, die wie im vorherigen Abschnitt beschrieben deaktiviert wurden.

Entfernen eines Zeitplans über das Azure-Portal

  1. Wählen Sie in Ihrem Automation-Konto im linken Bereich unter Freigegebene Ressourcen die Option Zeitpläne aus.
  2. Wählen Sie den Namen eines Zeitplans aus, um den Detailbereich zu öffnen.
  3. Klicken Sie auf Löschen.

Entfernen eines Zeitplans mithilfe von PowerShell

Mit dem Cmdlet Remove-AzAutomationSchedule können Sie wie unten dargestellt einen vorhandenen Zeitplan löschen.

$automationAccountName = "MyAutomationAccount"
$scheduleName = "Sample-MonthlyDaysOfMonthSchedule"
Remove-AzAutomationSchedule -AutomationAccountName $automationAccountName `
-Name $scheduleName -ResourceGroupName "ResourceGroup01"

Nächste Schritte