PowerShell-Automatisierungsskript-Beispiele für M365-Administratoren

Inhaltsverzeichnis
Während das Microsoft 365 Admin Center viele Bulk- und administrative Aufgaben unterstützt, können einige erweiterte oder sehr repetitive Vorgänge effizienter sein, wenn sie mit PowerShell automatisiert werden.
Mit den richtigen Skripten können Sie häufige Admin-Aufgaben automatisieren, routinemäßige Prozesse beschleunigen und mehr Kontrolle über Ihre Umgebung erlangen.
Aber obwohl PowerShell ein mächtiges Tool ist, möchte nicht jeder den ganzen Tag in Skripten leben – besonders da sie schwierig zu warten, zu sichern und zu verwalten sein können, wenn Umgebungen wachsen. Deshalb kombinieren viele IT-Teams Scripting mit speziell entwickelten Tools wie ShareGate, um komplexe Aufgaben zu vereinfachen und mehr Bereiche abzudecken.
Tatsächlich bewältigt ShareGate Migrate umfangreiche Migrationen ohne die Notwendigkeit von Scripting, während unser PowerShell-Modul leistungsstarke Cmdlets für diejenigen bietet, die einen praktischeren Ansatz bevorzugen.
In diesem Leitfaden behandeln wir vier PowerShell-Automatisierungsskript-Beispiele, die Sie heute verwenden können, um mehr mit weniger manuellem Aufwand zu erreichen.
Warum PowerShell-Automatisierung für Microsoft 365 verwenden?
PowerShell gibt IT-Administratoren eine Möglichkeit, routinemäßige Arbeit zu automatisieren, Änderungen im großen Maßstab anzuwenden und alltägliche Abläufe zu optimieren. Hier ist, warum viele zu PowerShell als Teil ihres Toolkits greifen:
- Geschwindigkeit: Führen Sie ein einzelnes Skript aus, um Tausende von Benutzern zu aktualisieren, Berechtigungen zu überprüfen oder Konfigurationen anzupassen. Schon grundlegende Skripte können die manuelle Arbeit drastisch reduzieren.
- Wiederholbarkeit: Sobald Sie ein Skript geschrieben haben, können Sie es jederzeit wiederverwenden. Der zusätzliche Aufwand im Vorfeld ermöglicht es Ihnen, Arbeitsabläufe zu automatisieren und bietet langfristige Einsparungen und Konsistenz.
- Bulk-Änderungen: PowerShell integriert sich mit wichtigen Microsoft 365-Diensten und macht es einfacher, administrative Aufgaben zu automatisieren und Bulk-Änderungen wie Policy-Konfigurationen oder Berechtigungsänderungen mit einem Befehl durchzuführen.
PowerShell ist besonders nützlich für repetitive oder groß angelegte Admin-Projekte, die das Admin Center einfach nicht effizient handhaben kann. Allerdings ist es keine vollständige Lösung für sich allein. Für komplexere Szenarien – wie das Verwalten von Migrationen oder die Anwendung von Governance im großen Maßstab – kann die Kombination von PowerShell mit Lösungen wie ShareGate Ihnen das Beste aus beiden Welten geben: Automatisierung wo sie hilft und Einfachheit wo es zählt.
Erste Schritte mit PowerShell-Scripting
PowerShell verwendet Cmdlets, die mit Funktionen, Pipelines und Modulen kombiniert werden können, um administrative Aufgaben durchzuführen. Wenn Sie diese Befehle in Skripten gruppieren, haben Sie ein flexibles Automatisierungstool, das Zeit sparen und manuellen Aufwand reduzieren kann.
Neu beim Scripting? PowerShell hat eine Lernkurve, aber Administratoren können mit einfachen Skripten beginnen, bevor sie schrittweise erweiterte Automatisierung aufbauen. Hier sind die Grundlagen, um loszulegen:
- Erforderliche Module installieren: PowerShell benötigt Module, um mit Ihrer M365-Umgebung zu kommunizieren. Häufige Module umfassen Microsoft.Graph oder ExchangeOnlineManagement.
- Verbindung zu Microsoft 365-Diensten herstellen: Verwenden Sie Connect-MgGraph für Microsoft Graph oder Connect-ExchangeOnline für Exchange Online, abhängig davon, mit welchen Diensten Sie arbeiten.
- Ein grundlegendes Skript schreiben: Sobald Sie verbunden sind, können Sie .ps1-Skripte erstellen, um Benutzer aufzulisten, Berechtigungen zu überprüfen oder Postfachgrößen zu kontrollieren. Beginnen Sie mit einfachen Aufgaben und erweitern Sie nach und nach – PowerShell belohnt Iteration.
Bevor Sie ein Skript einsetzen, testen Sie es immer in einer sicheren Umgebung. Sie möchten sehen, wie es sich verhält und eventuelle Probleme abfangen, bevor Sie Änderungen an Ihrer Produktionsumgebung vornehmen.
Und ein letzter Tipp: Verwenden Sie Kommentare großzügig. Selbst wenn das Skript jetzt perfekt verständlich ist, werden Sie feststellen, dass es das einige Monate später vielleicht nicht mehr ist. Klare Kommentare helfen Ihrem zukünftigen Ich – und allen anderen, die Ihren Code lesen – zu verstehen, was passiert und warum.
PowerShell ist eine großartige Möglichkeit, Automatisierung in Ihre Admin-Arbeitsabläufe zu integrieren. Und in Kombination mit Tools wie ShareGate können Sie diese Effizienz auf Bereiche wie Migrationsplanung, Berichterstattung und Governance ausdehnen – ohne jedes Skript von Grund auf zu schreiben.
4 praktische PowerShell-Scripting-Beispiele
Hier sind einige reale Beispiele dessen, was Sie mit PowerShell automatisieren können.
1. Websitesammlungsadministration in SharePoint mit PowerShell zuweisen
Sie können manuell Websitesammlungsadministratoren über das SharePoint Admin Center hinzufügen. Aber wer möchte Dinge manuell machen? PowerShell-Scripting ermöglicht es Ihnen, diese Aufgabe programmatisch statt manuell über das Admin Center durchzuführen:
## Beginnen Sie mit der Zuweisung von Variablen in SharePoint wie folgt:
$AdminURL = "https://contoso-admin.sharepoint.com"
$AdminName = "admin@contoso.onmicrosoft.com"
$SiteCollectionURL = "https://contoso.sharepoint.com/sites/marketing"
$SiteCollectionAdmin = "Mark@sharegate.onmicrosoft.com"
## Verbindung zu SharePoint Online mit moderner Authentifizierung (MFA unterstützt)
Connect-SPOService -Url $AdminURL
## Schließlich fügen Sie den Websitesammlungsadministrator hinzu und Sie sind fertig!
Set-SPOUser -site $SiteCollectionURL -LoginName $SiteCollectionAdmin -IsSiteCollectionAdmin $True
2. Export einer Liste aller SharePoint-Websitesammlungen
PowerShell ermöglicht es Ihnen, eine Liste von SharePoint-Websitesammlungen und deren Eigenschaften zu exportieren:
# 1. Importieren Sie das SharePoint Online Management Shell-Modul
Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking
# 2. Setzen Sie Ihre SharePoint Admin Center-URL
$AdminCenterUrl = "https://<yourtenant>-admin.sharepoint.com"
# 3. Verbindung zu SharePoint Online
Connect-SPOService -Url $AdminCenterUrl
# 4. Alle Websitesammlungen im Tenant abrufen
$AllSites = Get-SPOSite -Limit All -IncludePersonalSite $true
# 5. Die Eigenschaften auswählen, die Sie exportieren möchten
# Zusätzliche Eigenschaften nach Bedarf anpassen oder hinzufügen
$SiteReport = $AllSites | Select-Object `
Title, `
Url, `
Owner, `
Template, `
StorageQuota, `
StorageUsageCurrent, `
LastContentModifiedDate, `
SharingCapability
# 6. Den Bericht als CSV exportieren
$CsvPath = "C:\Temp\SharePointSiteCollections.csv"
$SiteReport | Export-Csv -Path $CsvPath -NoTypeInformation -Encoding UTF8
Write-Host "Export abgeschlossen. Datei gespeichert unter $CsvPath"
3. PowerShell verwenden, um ein Team zu kopieren
Müssen Sie ein M365-Team duplizieren? PowerShell kann helfen, Teile eines Teams (wie Mitglieder und Kanäle) nachzubilden, aber es wird keine zugrundeliegenden Inhalte (wie Kanalnachrichten/Dateien) klonen, und Registerkarten erfordern möglicherweise eine Neukonfiguration nach dem Klonen:
# Verbindung zu Microsoft Graph mit erforderlichen Berechtigungen
Connect-MgGraph -Scopes "Team.Create","Group.ReadWrite.All","Directory.ReadWrite.All"
# Quell-Team-ID und neue Team-Eigenschaften definieren
$sourceTeamId = "<SOURCE_TEAM_ID>"
$body = @{
displayName = "Neue Team-Kopie"
description = "Geklontes Team von bestehendem Team"
mailNickname = "neueteamkopie$(Get-Random)"
visibility = "Private" # oder "Public"
partsToClone = "apps,tabs,settings,channels,members"
}
# Das Team klonen (Struktur, Kanäle, Mitglieder, Apps, Einstellungen)
Copy-MgTeam -TeamId $sourceTeamId -BodyParameter $body
Write-Host "Klon für Team-ID $sourceTeamId initiiert"
4. Benutzerberechtigungen in SharePoint mit PowerShell kopieren
Es gibt kein einzelnes PowerShell-Cmdlet, das SharePoint-Berechtigungen kopiert. Stattdessen werden Berechtigungen von einem Ort gelesen und an einem anderen wieder angewendet, was bedeutet, dass Sie Vererbung, Gruppenmitgliedschaft und Rollenzuweisungen berücksichtigen müssen.
PowerShell kann helfen, Berechtigungen im großen Maßstab zu replizieren, indem sie rekonstruiert werden, anstatt eine echte Kopie durchzuführen.
Beispiel: Website-Berechtigungen mit PowerShell replizieren
Dieses Beispiel zeigt, wie Sie SharePoint-Gruppenberechtigungen von einer Website zu einer anderen kopieren:
# Verbindung zur Quell-Website
Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/source" -Interactive
# Gruppenberechtigungen erfassen
$Groups = Get-PnPGroup | ForEach-Object {
[PSCustomObject]@{
Name = $_.Title
Roles = (Get-PnPGroupPermissions -Identity $_.Title).RoleDefinitionBindings.Name
}
}
# Verbindung zur Ziel-Website
Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/target" -Interactive
# Vererbung auf der Ziel-Website unterbrechen
$web = Get-PnPWeb
$web.BreakRoleIn
.avif)
%20(1).avif)








.avif)










