Verwalten von SharePoint-Benutzern und -Gruppen mit PowerShell

Dieser Artikel gilt sowohl für Microsoft 365 Enterprise als auch für Office 365 Enterprise.

Wenn Sie ein SharePoint-Administrator sind, der mit großen Listen von Benutzerkonten oder Gruppen arbeitet und diese einfacher verwalten möchte, können Sie PowerShell für Microsoft 365 verwenden.

Bevor Sie beginnen, erfordern die Verfahren in diesem Artikel, dass Sie eine Verbindung mit SharePoint herstellen. Anweisungen finden Sie unter Herstellen einer Verbindung mit SharePoint PowerShell.

Abrufen einer Liste von Websites, Gruppen und Benutzern

Bevor wir mit der Verwaltung von Benutzern und Gruppen beginnen, müssen Sie Listen Ihrer Websites, Gruppen und Benutzer abrufen. Anschließend können Sie diese Informationen verwenden, um das Beispiel in diesem Artikel zu durcharbeiten.

Rufen Sie mit diesem Befehl eine Liste der Websites in Ihrem Mandanten ab:

Get-SPOSite

Rufen Sie mit diesem Befehl eine Liste der Gruppen in Ihrem Mandanten ab:

Get-SPOSite | ForEach {Get-SPOSiteGroup -Site $_.Url} | Format-Table

Rufen Sie mit diesem Befehl eine Liste der Benutzer in Ihrem Mandanten ab:

Get-SPOSite | ForEach {Get-SPOUser -Site $_.Url}

Hinzufügen eines Benutzers zur Gruppe der Websiteadministratoren

Sie verwenden das Set-SPOUser Cmdlet, um der Liste der Websiteadministratoren in einer Websitesammlung einen Benutzer hinzuzufügen.

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$user = "<user account name, such as opalc>"
Set-SPOUser -Site https://$tenant.sharepoint.com/sites/$site -LoginName $user@$tenant.com -IsSiteCollectionAdmin $true

Um diese Befehle zu verwenden, ersetzen Sie alles in den Anführungszeichen, einschließlich der < Zeichen und > , durch die richtigen Namen.

Dieser Befehlssatz fügt beispielsweise Opal Castillo (Benutzername opalc) der Liste der Websiteadministratoren in der ContosoTest-Websitesammlung im Mandanten contoso hinzu:

$tenant = "contoso"
$site = "contosotest"
$user = "opalc"
Set-SPOUser -Site https://$tenant.sharepoint.com/sites/$site -LoginName $user@$tenant.com -IsSiteCollectionAdmin $true

Sie können diese Befehle kopieren und in Editor einfügen, die Variablenwerte für $tenant, $site und $user in tatsächliche Werte aus Ihrer Umgebung ändern und dann in Ihr SharePoint-Verwaltungsshell-Fenster einfügen, um sie auszuführen.

Hinzufügen eines Benutzers zu anderen Websitesammlungsgruppen

In dieser Aufgabe verwenden wir das Add-SPOUser Cmdlet, um einer SharePoint-Gruppe in einer Websitesammlung einen Benutzer hinzuzufügen.

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$user = "<user account name, such as opalc>"
$group = "<group name name, such as Auditors>"
Add-SPOUser -Group $group -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site

Fügen Sie beispielsweise Glen Rife (Benutzername glenr) der Gruppe Auditoren in der ContosoTest-Websitesammlung im Mandanten contoso hinzu:

$tenant = "contoso"
$site = "contosotest"
$user = "glenr"
$group = "Auditors"
Add-SPOUser -Group $group -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site

Create einer Websitesammlungsgruppe

Sie verwenden das New-SPOSiteGroup Cmdlet, um eine neue SharePoint-Gruppe zu erstellen und sie einer Websitesammlung hinzuzufügen.

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$group = "<group name name, such as Auditors>"
$level = "<permission level, such as View Only>"
New-SPOSiteGroup -Group $group -PermissionLevels $level -Site https://$tenant.sharepoint.com/sites/$site

Gruppeneigenschaften, z. B. Berechtigungsstufen, können später mithilfe des Set-SPOSiteGroup Cmdlets aktualisiert werden.

Fügen Sie beispielsweise die Gruppe Auditoren mit den Berechtigungen Nur anzeigen zur Websitesammlung contosotest im Mandanten contoso hinzu:

$tenant = "contoso"
$site = "contosotest"
$group = "Auditors"
$level = "View Only"
New-SPOSiteGroup -Group $group -PermissionLevels $level -Site https://$tenant.sharepoint.com/sites/$site

Entfernen von Benutzern aus einer Gruppe

Manchmal müssen Sie einen Benutzer von einer Website oder sogar von allen Websites entfernen. Vielleicht wechselt der Mitarbeiter von einer Abteilung in eine andere oder verlässt das Unternehmen. Sie können dies für einen Mitarbeiter problemlos auf der Benutzeroberfläche tun, aber dies ist nicht einfach, wenn Sie eine vollständige Division von einer Website auf eine andere verschieben müssen.

Durch die Verwendung der SharePoint-Verwaltungsshell und CSV-Dateien ist dies jedoch schnell und einfach. In dieser Aufgabe verwenden Sie Windows PowerShell, um einen Benutzer aus einer Websitesammlungssicherheitsgruppe zu entfernen. Anschließend verwenden Sie eine CSV-Datei und entfernen viele Benutzer von verschiedenen Websites.

Wir verwenden das Cmdlet "Remove-SPOUser", um einen einzelnen Microsoft 365-Benutzer aus einer Websitesammlungsgruppe zu entfernen, damit wir die Befehlssyntax sehen können. So sieht die Syntax aus:

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$user = "<user account name, such as opalc>"
$group = "<group name name, such as Auditors>"
Remove-SPOUser -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site -Group $group

Entfernen wir beispielsweise Bobby Overby aus der Gruppe "Prüfer" der Websitesammlung in der websitetest-Websitesammlung im Mandanten contoso:

$tenant = "contoso"
$site = "contosotest"
$user = "bobbyo"
$group = "Auditors"
Remove-SPOUser -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site -Group $group

Angenommen, wir wollten Bobby aus allen Gruppen entfernen, in der er sich derzeit befindet. Gehen Sie dazu wie folgt vor:

$tenant = "contoso"
$user = "bobbyo"
Get-SPOSite | ForEach {Get-SPOSiteGroup –Site $_.Url} | ForEach {Remove-SPOUser -LoginName $user@$tenant.com -Site $_.Url}

Warnung

Dies ist nur ein Beispiel. Sie sollten diesen Befehl nur ausführen, wenn Sie einen Benutzer wirklich aus jeder Gruppe entfernen müssen, z. B. wenn der Benutzer das Unternehmen verlässt.

Automatisieren der Verwaltung großer Benutzer- und Gruppenlisten

Um eine große Anzahl von Konten zu SharePoint-Websites hinzuzufügen und ihnen Berechtigungen zu erteilen, können Sie die Microsoft 365 Admin Center, einzelne PowerShell-Befehle oder PowerShell und eine CSV-Datei verwenden. Von diesen Optionen ist die CSV-Datei die schnellste Möglichkeit, diese Aufgabe zu automatisieren.

Der grundlegende Prozess besteht darin, eine CSV-Datei mit Headern (Spalten) zu erstellen, die den Parametern entsprechen, die das Windows PowerShell Skripts benötigt. Sie können eine solche Liste ganz einfach in Excel erstellen und dann als CSV-Datei exportieren. Anschließend verwenden Sie ein Windows PowerShell Skript, um Datensätze (Zeilen) in der CSV-Datei zu durchlaufen und die Benutzer zu Gruppen und die Gruppen zu Websites hinzuzufügen.

Erstellen Sie beispielsweise eine CSV-Datei, um eine Gruppe von Websitesammlungen, Gruppen und Berechtigungen zu definieren. Als Nächstes erstellen wir eine CSV-Datei, um die Gruppen mit Benutzern aufzufüllen. Abschließend erstellen und führen wir ein Windows PowerShell Skript aus, das die Gruppen erstellt und auffüllt.

Die erste CSV-Datei fügt einer oder mehreren Websitesammlungen eine oder mehrere Gruppen hinzu und weist diese Struktur auf:

Header:

Site,Group,PermissionLevels

Artikel:

https://tenant.sharepoint.com/sites/site,group,level

Hier sehen Sie eine Beispieldatei:

Site,Group,PermissionLevels
https://contoso.sharepoint.com/sites/contosotest,Contoso Project Leads,Full Control
https://contoso.sharepoint.com/sites/contosotest,Contoso Auditors,View Only
https://contoso.sharepoint.com/sites/contosotest,Contoso Designers,Design
https://contoso.sharepoint.com/sites/TeamSite01,XT1000 Team Leads,Full Control
https://contoso.sharepoint.com/sites/TeamSite01,XT1000 Advisors,Edit
https://contoso.sharepoint.com/sites/Blog01,Contoso Blog Designers,Design
https://contoso.sharepoint.com/sites/Blog01,Contoso Blog Editors,Edit
https://contoso.sharepoint.com/sites/Project01,Project Alpha Approvers,Full Control

Die zweite CSV-Datei fügt einer oder mehreren Gruppen einen oder mehrere Benutzer hinzu und weist diese Struktur auf:

Header:

Group,LoginName,Site

Artikel:

group,login,https://tenant.sharepoint.com/sites/site

Hier sehen Sie eine Beispieldatei:

Group,LoginName,Site
Contoso Project Leads,bobbyo@contoso.com,https://contoso.sharepoint.com/sites/contosotest
Contoso Auditors,allieb@contoso.com,https://contoso.sharepoint.com/sites/contosotest
Contoso Designers,bonniek@contoso.com,https://contoso.sharepoint.com/sites/contosotest
XT1000 Team Leads,dorenap@contoso.com,https://contoso.sharepoint.com/sites/TeamSite01
XT1000 Advisors,garthf@contoso.com,https://contoso.sharepoint.com/sites/TeamSite01
Contoso Blog Designers,janets@contoso.com,https://contoso.sharepoint.com/sites/Blog01
Contoso Blog Editors,opalc@contoso.com,https://contoso.sharepoint.com/sites/Blog01
Project Alpha Approvers,robinc@contoso.com,https://contoso.sharepoint.com/sites/Project01

Für den nächsten Schritt müssen die beiden CSV-Dateien auf Ihrem Laufwerk gespeichert sein. Hier finden Sie Beispielbefehle, die sowohl CSV-Dateien als auch zum Hinzufügen von Berechtigungen und Gruppenmitgliedschaften verwenden:

Import-Csv C:\O365Admin\GroupsAndPermissions.csv | ForEach {New-SPOSiteGroup -Group $_.Group -PermissionLevels $_.PermissionLevels -Site $_.Site}
Import-Csv C:\O365Admin\Users.csv | ForEach {Add-SPOUser -Group $_.Group –LoginName $_.LoginName -Site $_.Site}

Das Skript importiert den Inhalt der CSV-Datei und verwendet die Werte in den Spalten, um die Parameter der Befehle New-SPOSiteGroup und Add-SPOUser aufzufüllen. In unserem Beispiel speichern wir diese Datei im Ordner O365Admin auf Laufwerk C, aber Sie können sie speichern, wo immer Sie möchten.

Nun entfernen wir eine Reihe von Personen für mehrere Gruppen auf verschiedenen Websites mithilfe derselben CSV-Datei. Hier sehen Sie einen Beispielbefehl:

Import-Csv C:\O365Admin\Users.csv | ForEach {Remove-SPOUser -LoginName $_.LoginName -Site $_.Site -Group $_.Group}

Generieren von Benutzerberichten

Möglicherweise möchten Sie einen Bericht für einige Websites abrufen und die Benutzer für diese Websites, deren Berechtigungsstufe und andere Eigenschaften anzeigen. So sieht die Syntax aus:

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site | select * | Format-table -Wrap -AutoSize | Out-File c\UsersReport.txt -Force -Width 360 -Append

Dadurch werden die Daten für diese drei Websites erfasst und in eine Textdatei auf Ihrem lokalen Laufwerk geschrieben. Der Parameter –Append fügt einer vorhandenen Datei neuen Inhalt hinzu.

Führen Sie beispielsweise einen Bericht für die Websites ContosoTest, TeamSite01 und Project01 für den Mandanten Contoso1 aus:

$tenant = "contoso"
$site = "contosotest"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append
$site = "TeamSite01"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site |Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append
$site = "Project01"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append

Wir mussten nur die $site Variable ändern. Die $tenant Variable behält ihren Wert während aller drei Ausführungen des Befehls bei.

Was aber, wenn Sie dies für jede Website tun möchten? Sie können dies tun, ohne alle diese Websites mit dem folgenden Befehl eingeben zu müssen:

Get-SPOSite | ForEach {Get-SPOUser –Site $_.Url} | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append

Dieser Bericht ist relativ einfach, und Sie können weiteren Code hinzufügen, um spezifischere Berichte oder Berichte zu erstellen, die ausführlichere Informationen enthalten. Dies sollte Ihnen jedoch eine Vorstellung davon geben, wie Sie die SharePoint-Verwaltungsshell verwenden, um Benutzer in der SharePoint-Umgebung zu verwalten.

Siehe auch

Herstellen einer Verbindung mit SharePoint PowerShell

Verwalten von SharePoint mit PowerShell

Verwalten von Microsoft 365 mit PowerShell

Erste Schritte mit PowerShell für Microsoft 365