Website-Suche

SharePoint Online: Wie plant man ein PowerShell-Skript mithilfe von Azure Automation?


Anforderung: Planen Sie PowerShell-Skripts für SharePoint Online mithilfe von Azure Automation.

Wie verwende ich Azure Automation, um PowerShell-Skripte für SharePoint Online zu planen?

Azure Automation ist eine hervorragende Option, wenn Sie Ihre wiederkehrenden PowerShell-Aufgaben direkt in der Cloud planen möchten, ohne von Ihrem lokalen Server oder virtuellen Maschinen über den Windows-Aufgabenplaner abhängig zu sein. Durch die Planung der Ausführung eines PowerShell-Skripts in Azure können Sie Aufgaben und Prozesse in Ihrer Azure-Umgebung automatisieren. Mit ein wenig Einrichtung können Sie Ihre PowerShell-Skripte ganz einfach so planen, dass sie zu bestimmten Zeiten oder in bestimmten Intervallen ausgeführt werden, sodass Sie eine Vielzahl von Aufgaben und Prozessen problemlos automatisieren können. In diesem Leitfaden gehen wir die Schritte zum Einrichten und Planen eines PowerShell-Skripts für die Ausführung in Azure durch, einschließlich der Erstellung eines Runbooks, der Konfiguration des Zeitplans und des Testens des Skripts.

Vorausgesetzt, Sie verfügen über ein bestehendes Azure-Abonnement, finden Sie hier die Schritte zum Erstellen einer automatisierten geplanten Aufgabe in Azure auf hoher Ebene:

  1. Erstellen Sie ein Azure Automation-Konto
  2. Richten Sie Anmeldeinformationen ein, um eine Verbindung zu SharePoint Online herzustellen
  3. Erforderliche Module importieren
  4. Erstellen Sie ein Runbook und fügen Sie auszuführende Skripts hinzu
  5. Planen Sie das PowerShell-Skript

Schritt 1: Erstellen Sie ein Azure Automation-Konto

Wenn Sie noch keine Azure-Automatisierungskonten erstellt haben, müssen Sie zunächst eines erstellen.

  1. Melden Sie sich beim Azure-Portal https://portal.azure.com an
  2. Klicken Sie auf die Schaltfläche „Ressource erstellen“ >> Suchen und finden Sie „Automatisierung“ >> Klicken Sie auf „Hinzufügen“, um ein neues Automatisierungskonto zu erstellen.

  3. In meinem Fall habe ich ein Automatisierungskonto mit dem Namen „SharePoint-Online-Reporting“ erstellt. Nach der Erstellung werden Sie auf die Seite des erstellten Automatisierungskontos weitergeleitet.

Schritt 2: Importieren Sie die erforderlichen PowerShell-Module

Wir werden das PnP-PowerShell-Modul für SharePoint Online in unserem PowerShell-Skript verwenden. Also müssen wir es zuerst in unsere Umgebung importieren.

  1. Öffnen Sie das erstellte Automation-Konto >> Klicken Sie in der linken Navigation auf „Modulgalerie“.
  2. Suchen und finden Sie „SharePointPnPPowerShellOnline“ (oder ein anderes relevantes Modul) >> Klicken Sie auf den Modullink >> verwenden Sie die Schaltfläche „Importieren“, um das Modul zu importieren.

  3. Dies wird einen Moment dauern und das ausgewählte Modul importieren.

Schritt 3: Anmeldeinformationen für „Als Konto ausführen“ hinzufügen

Wir müssen Anmeldeinformationen einrichten, um das PowerShell-Skript im Azure Automation Runbook auszuführen. Die Idee besteht also darin, dass unser PowerShell-Skript die gespeicherten Anmeldeinformationen vom Azure-Automatisierungskonto abruft, eine Verbindung zum SharePoint Online-Mandanten herstellt, den Speicherbericht für alle Websites generiert und dann jeden Tag eine E-Mail versendet.

  1. Klicken Sie im Automatisierungskonto im Schnellstart auf den Link „Anmeldeinformationen“.
  2. Klicken Sie auf die Schaltfläche „Anmeldeinformationen hinzufügen“. Geben Sie alle gültigen Anmeldeinformationen an, die über den erforderlichen Zugriff verfügen. Hier habe ich in meinem Fall ein Konto mit der SharePoint Online-Administratorrolle verwendet. Klicken Sie auf die Schaltfläche „Erstellen“, um einen Berechtigungsnachweis zu erstellen.

Wir können diese Anmeldeinformationen jetzt in unseren PowerShell-Skripten verwenden!

Schritt 4: Erstellen Sie ein Runbook mit PowerShell-Skript

Wie der Name schon sagt, ist Runbook der Container des Skripts, das wir ausführen werden. Runbook listet alle veröffentlichten Runbooks auf, die für die Automatisierung verfügbar sind.

  1. Öffnen Sie das erstellte Azure Automation-Konto >> Klicken Sie unter Prozessautomatisierung auf „Runbooks“.
  2. Klicken Sie auf „Runbook erstellen“ >> Vergeben Sie einen Namen, wählen Sie als Typ „PowerShell“ aus und klicken Sie auf die Schaltfläche „Erstellen“.

Sobald das PowerShell-Runbook erstellt wurde, gelangen Sie auf die Seite, auf der Sie das auszuführende PowerShell-Skript bearbeiten können. Schreiben Sie die notwendigen PowerShell-Skripte für die Automatisierung. In meinem Fall habe ich das folgende PowerShell-Skript geschrieben, um einen Speicherbericht für alle Sites im Mandanten zu erstellen und eine E-Mail zu versenden.


#Get Stored Credentials
$CrescentCred = Get-AutomationPSCredential -Name "StorageRptCred"

#Set Variables
$TenantAdminURL = "https://crescent-admin.sharepoint.com"
$EmailTo = "Salaudeen@crescent.com"
 
#Connect to PnP Online
Connect-PnPOnline -Url $TenantAdminURL -Credentials $CrescentCred

$CSSStyle = "<style>
table {font-family: Arial, Helvetica, sans-serif; border-collapse: collapse; width: 100%;}
table td, th {border: 1px solid #ddd; padding: 8px;}
table tr:hover {background-color: #ddd;}
table th { padding-top: 12px; padding-bottom: 12px; text-align: left; background-color: #4CAF50; color: white;}
</style>"

#Get the Site collection Storage details
[string]$EmailBody = Get-PnPTenantSite | Select @{Label="Title";Expression={$_.Title}}, 
                                        @{Label="URL";Expression={$_.URL}}, 
                                        @{Label="Allocated (GB)";Expression={$_.StorageMaximumLevel/1MB}}, 
                                        @{Label="Used (MB)";Expression={$_.StorageUsage}}, 
                                        @{Label="Warning Level (GB)";Expression={$_.StorageWarningLevel/1MB}} | 
ConvertTo-Html -Title "Crescent Inc. Storage Report" -Head $CSSStyle -PreContent "Sites Storage Report"

#Send Email
Send-PnPMail -To $EmailTo -Subject "Storage Report" -Body $EmailBody

Speichern und testen Sie das PowerShell-Skript, indem Sie auf „Speichern“ und dann auf die Schaltflächen „Testbereich“ im Code-Editor klicken. Wenn Sie mit dem Skript zufrieden sind, klicken Sie auf „Veröffentlichen“, um das Runbook zu veröffentlichen, da das Runbook zum Erstellen von Zeitplänen veröffentlicht werden muss.

Schritt 5: Fügen Sie Ihrem PowerShell-Skript einen Zeitplan hinzu

Als letzten Schritt müssen wir dem PowerShell-Skript einen Zeitplan hinzufügen. Hier erfahren Sie, wie Sie einen Zeitplan für Azure Runbook erstellen.

  1. Klicken Sie im erstellten Runbook auf „Zeitpläne“ >> Klicken Sie auf den Link „Zeitplan hinzufügen“.
  2. Wählen Sie „Einen Zeitplan mit Ihrem Runbook verknüpfen“ >> Klicken Sie auf den Link „Neuen Zeitplan erstellen“.
  3. Geben Sie die notwendigen Details für Ihren Zeitplan ein, wie Name, Beschreibung, Startdatum, Uhrzeit, Zeitzone und die Wiederholungsdetails. In meinem Fall läuft der Zeitplan jeden Tag zur angegebenen Zeit bis zum Ablaufdatum.

Okay, jetzt haben wir das PowerShell-Skript in der Azure-Automatisierung konfiguriert. Warten Sie, bis der geplante Job ausgeführt wird. Hier sind meine E-Mails zu geplanten Jobs in Aktion:

Wenn Sie ein PowerShell-Skript planen möchten, können Sie auch den Windows-Taskplaner verwenden: Wie erstelle ich eine geplante Aufgabe für PowerShell-Skript mit dem Windows-Taskplaner?

Abschluss

Zusammenfassend kann die Planung eines PowerShell-Skripts zur Ausführung in Azure eine nützliche Möglichkeit sein, Aufgaben und Prozesse in Ihrer Azure-Umgebung zu automatisieren. Indem Sie die in diesem Leitfaden beschriebenen Schritte befolgen, können Sie die Ausführung Ihrer PowerShell-Skripts zu bestimmten Zeiten oder Intervallen planen, Sie können Zeit und Aufwand sparen, indem Sie sich wiederholende oder zeitaufwändige Aufgaben automatisieren, und sicherstellen, dass Ihre Azure-Umgebung reibungslos und effizient läuft.

Verwandte Artikel