SharePoint-gebruikers en -groepen beheren met PowerShell

Dit artikel is van toepassing op Microsoft 365 Enterprise en Office 365 Enterprise.

Als u een SharePoint-beheerder bent die werkt met grote lijsten met gebruikersaccounts of -groepen en een eenvoudigere manier wilt om ze te beheren, kunt u PowerShell voor Microsoft 365 gebruiken.

Voordat u begint, moet u voor de procedures in dit artikel verbinding maken met SharePoint. Zie Verbinding maken met SharePoint PowerShell voor instructies.

Een lijst met sites, groepen en gebruikers ophalen

Voordat we beginnen met het beheren van gebruikers en groepen, moet u lijsten met uw sites, groepen en gebruikers ophalen. U kunt deze informatie vervolgens gebruiken om het voorbeeld in dit artikel te doorlopen.

Haal een lijst op van de sites in uw tenant met deze opdracht:

Get-SPOSite

Haal een lijst op van de groepen in uw tenant met deze opdracht:

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

Haal een lijst op met de gebruikers in uw tenant met deze opdracht:

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

Een gebruiker toevoegen aan de groep Beheerders van siteverzamelingen

U gebruikt de Set-SPOUser cmdlet om een gebruiker toe te voegen aan de lijst met sitebeheerders in een siteverzameling.

$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

Als u deze opdrachten wilt gebruiken, vervangt u alles tussen de aanhalingstekens, inclusief de < tekens en > , door de juiste namen.

Met deze set opdrachten wordt bijvoorbeeld Opal Castillo (gebruikersnaam opalc) toegevoegd aan de lijst met beheerders van siteverzamelingen in de siteverzameling ContosoTest in de contoso-tenancy:

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

U kunt deze opdrachten kopiëren en plakken in Kladblok, de variabelewaarden voor $tenant, $site en $user wijzigen in werkelijke waarden uit uw omgeving en deze vervolgens in uw SharePoint Management Shell-venster plakken om ze uit te voeren.

Een gebruiker toevoegen aan andere siteverzamelingsgroepen

In deze taak gebruiken we de Add-SPOUser cmdlet om een gebruiker toe te voegen aan een SharePoint-groep in een siteverzameling.

$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

Laten we bijvoorbeeld Glen Rife (gebruikersnaam glenr) toevoegen aan de groep Auditors in de siteverzameling ContosoTest in de contoso-tenancy:

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

Een siteverzamelingsgroep maken

U gebruikt de New-SPOSiteGroup cmdlet om een nieuwe SharePoint-groep te maken en deze toe te voegen aan een siteverzameling.

$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

Groepseigenschappen, zoals machtigingsniveaus, kunnen later worden bijgewerkt met behulp van de Set-SPOSiteGroup cmdlet.

Laten we bijvoorbeeld de groep Auditors met de machtigingen Alleen weergeven toevoegen aan de siteverzameling contosotest in de tenancy contoso:

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

Gebruikers uit een groep verwijderen

Soms moet u een gebruiker verwijderen van een site of zelfs van alle sites. Misschien gaat de werknemer van de ene afdeling naar de andere of verlaat hij het bedrijf. U kunt dit voor de ene werknemer eenvoudig doen in de gebruikersinterface, maar dit is niet eenvoudig wanneer u een volledige afdeling van de ene site naar de andere moet verplaatsen.

Door de SharePoint Management Shell- en CSV-bestanden te gebruiken, is dit echter snel en eenvoudig. In deze taak gebruikt u Windows PowerShell om een gebruiker te verwijderen uit een beveiligingsgroep voor een siteverzameling. Vervolgens gebruikt u een CSV-bestand en verwijdert u veel gebruikers van verschillende sites.

We gebruiken de cmdlet Remove-SPOUser om één Microsoft 365-gebruiker uit een siteverzamelingsgroep te verwijderen, zodat we de syntaxis van de opdracht kunnen zien. De syntaxis ziet er als volgt uit:

$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

Laten we bijvoorbeeld Bobby Overby verwijderen uit de groep Auditors van de siteverzameling in de siteverzameling contosotest siteverzameling in de contoso-tenancy:

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

Stel dat we Bobby willen verwijderen uit alle groepen waar hij momenteel in zit. Dit doet u als volgt:

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

Waarschuwing

Dit is slechts een voorbeeld. U moet deze opdracht alleen uitvoeren als u echt een gebruiker uit elke groep moet verwijderen, bijvoorbeeld als de gebruiker het bedrijf verlaat.

Beheer van grote lijsten met gebruikers en groepen automatiseren

Als u een groot aantal accounts wilt toevoegen aan SharePoint-sites en deze machtigingen wilt geven, kunt u de Microsoft 365-beheercentrum, afzonderlijke PowerShell-opdrachten of PowerShell en een CSV-bestand gebruiken. Van deze opties is het CSV-bestand de snelste manier om deze taak te automatiseren.

Het basisproces bestaat uit het maken van een CSV-bestand met headers (kolommen) die overeenkomen met de parameters die het Windows PowerShell script nodig heeft. U kunt een dergelijke lijst eenvoudig maken in Excel en deze vervolgens exporteren als een CSV-bestand. Vervolgens gebruikt u een Windows PowerShell script om records (rijen) in het CSV-bestand te doorlopen, waarbij u de gebruikers toevoegt aan groepen en de groepen aan sites.

Laten we bijvoorbeeld een CSV-bestand maken om een groep siteverzamelingen, -groepen en -machtigingen te definiëren. Vervolgens maken we een CSV-bestand om de groepen met gebruikers te vullen. Ten slotte maken en voeren we een Windows PowerShell script uit waarmee de groepen worden gemaakt en ingevuld.

Het eerste CSV-bestand voegt een of meer groepen toe aan een of meer siteverzamelingen en heeft deze structuur:

Header:

Site,Group,PermissionLevels

Item:

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

Hier volgt een voorbeeldbestand:

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

Het tweede CSV-bestand voegt een of meer gebruikers toe aan een of meer groepen en heeft deze structuur:

Header:

Group,LoginName,Site

Item:

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

Hier volgt een voorbeeldbestand:

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

Voor de volgende stap moet u de twee CSV-bestanden op uw station hebben opgeslagen. Hier volgen voorbeelden van opdrachten die gebruikmaken van zowel CSV-bestanden als om machtigingen en groepslidmaatschap toe te voegen:

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}

Het script importeert de inhoud van het CSV-bestand en gebruikt de waarden in de kolommen om de parameters van de opdrachten New-SPOSiteGroup en Add-SPOUser te vullen. In ons voorbeeld slaan we dit bestand op in de map O365Admin op station C, maar u kunt het opslaan waar u maar wilt.

Nu gaan we een aantal personen verwijderen voor verschillende groepen op verschillende sites met behulp van hetzelfde CSV-bestand. Hier volgt een voorbeeldopdracht:

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

Gebruikersrapporten genereren

Mogelijk wilt u een rapport voor een paar sites ophalen en de gebruikers voor die sites, hun machtigingsniveau en andere eigenschappen weergeven. De syntaxis ziet er als volgt uit:

$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

Hiermee worden de gegevens voor deze drie sites opgehaald en naar een tekstbestand op uw lokale station geschreven. Met de parameter –Toevoegen wordt nieuwe inhoud toegevoegd aan een bestaand bestand.

Laten we bijvoorbeeld een rapport uitvoeren op de sites ContosoTest, TeamSite01 en Project01 voor de Contoso1-tenant:

$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

We moesten alleen de variabele $site wijzigen. De variabele $tenant behoudt de waarde tijdens alle drie uitvoeringen van de opdracht.

Maar wat als u dit voor elke site wilt doen? U kunt dit doen zonder dat u al deze websites hoeft te typen met behulp van deze opdracht:

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

Dit rapport is vrij eenvoudig en u kunt meer code toevoegen om specifiekere rapporten of rapporten met meer gedetailleerde informatie te maken. Maar dit zou u een idee moeten geven van hoe u de SharePoint Management Shell kunt gebruiken om gebruikers in de SharePoint-omgeving te beheren.

Zie ook

Verbinding maken met SharePoint PowerShell

SharePoint beheren met PowerShell

Microsoft 365 beheren met PowerShell

Aan de slag met PowerShell voor Microsoft 365