Hantera SharePoint onlineanvändare och grupper med PowerShell

Denna artikel gäller för både Microsoft 365 Enterprise och Office 365 Enterprise.

Om du är SharePoint Online-administratör som arbetar med stora listor med användarkonton eller grupper och vill ha ett enklare sätt att hantera dem, kan du använda PowerShell för Microsoft 365.

Innan du börjar måste du ansluta till ett e-SharePoint Online för procedurerna i det här avsnittet. Instruktioner finns i Anslut för SharePoint PowerShell

Få en lista över webbplatser, grupper och användare

Innan vi börjar hantera användare och grupper behöver du listor över dina webbplatser, grupper och användare. Du kan sedan använda den här informationen för att gå igenom exemplet i den här artikeln.

Hämta en lista över webbplatserna i klientorganisationen med det här kommandot:

Get-SPOSite

Hämta en lista över grupperna i klientorganisationen med det här kommandot:

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

Hämta en lista över användarna i klientorganisationen med det här kommandot:

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

Lägga till en användare i gruppen Administratörer för webbplatssamlingar

Du använder Set-SPOUser cmdleten för att lägga till en användare i listan med administratörer för webbplatssamlingar på en webbplatssamling.

$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

Om du vill använda dessa kommandon ersätter du allt inom citattförfrågningarna, < och >, med rätt namn.

I den här uppsättningen kommandon läggs till till Till Exempel Castkommando (användarnamn och c) i listan över administratörer för webbplatssamlingar i ContosoTest-webbplatssamlingen i Contoso-innehavare:

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

Du kan kopiera och klistra in kommandona i Anteckningar, ändra variabla värden för $tenant, $site och $user till faktiska värden från din miljö och sedan klistra in dessa i SharePoint Online Management Shell-fönstret för att köra dem.

Lägga till en användare i andra webbplatssamlingsgrupper

I den här uppgiften använder vi cmdleten för att lägga till en användare i Add-SPOUser SharePoint grupp i en webbplatssamling.

$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

Vi kan till exempel lägga till Mikael Berg (användarnamnsr) i gruppen Granskare på ContosoTest-webbplatssamlingen i contoso-innehavare:

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

Skapa en webbplatssamlingsgrupp

Du använder New-SPOSiteGroup cmdleten för att skapa en ny SharePoint och lägga till den i en webbplatssamling.

$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

Gruppegenskaper, till exempel behörighetsnivåer, kan uppdateras senare med hjälp av Set-SPOSiteGroup cmdleten.

Vi lägger till exempel till gruppen Granskare med behörigheten Endast visa för den contosotesta webbplatssamlingen i contoso-innehavare:

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

Ta bort användare från en grupp

Ibland behöver du ta bort en användare från en webbplats eller till och med alla webbplatser. Den anställda kanske flyttar från en avdelning till en annan eller lämnar företaget. Det kan du göra enkelt för en anställd i användargränssnittet, men detta görs inte enkelt när du behöver flytta en fullständig avdelning från en webbplats till en annan.

Men med hjälp av SharePoint Online Management Shell och CSV-filer går det snabbt och enkelt. I den här uppgiften ska du använda Windows PowerShell ta bort en användare från en säkerhetsgrupp för en webbplatssamling. Sedan använder du en CSV-fil och tar bort många användare från olika webbplatser.

Vi kommer att använda cmdleten Remove-SPOUser för att ta bort en enskild Microsoft 365-användare från en webbplatssamlingsgrupp, så att vi kan se kommandosyntaxen. Så här ser syntaxen ut:

$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

Vi kan till exempel ta bort Johan Överby från webbplatssamlingen Granskare-gruppen i den contosotesta webbplatssamlingen i contoso-innehavare:

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

Anta att vi vill ta bort Johan från alla grupper han finns i för närvarande. Så här skulle vi göra:

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

Varning

Det här är bara ett exempel. Du bör inte köra det här kommandot såvida du inte verkligen måste ta bort en användare från varje grupp, till exempel om användaren lämnar företaget.

Automatisera hanteringen av stora listor med användare och grupper

Om du vill lägga till ett stort antal konton på SharePoint-webbplatser och ge dem behörighet kan du använda Administrationscenter för Microsoft 365, enskilda PowerShell-kommandon eller PowerShell för en CSV-fil. Av de här alternativen är CSV-filen det snabbaste sättet att automatisera den här uppgiften.

Den grundläggande processen är att skapa en CSV-fil med rubriker (kolumner) som motsvarar de parametrar som Windows PowerShell behöver. Du kan enkelt skapa en sådan lista i Excel och sedan exportera den som en CSV-fil. Sedan använder du ett Windows PowerShell för att iterera genom poster (rader) i CSV-filen och lägga till användare i grupper och grupper på webbplatserna.

Låt oss till exempel skapa en CSV-fil för att definiera en grupp med webbplatssamlingar, grupper och behörigheter. Sedan skapar vi en CSV-fil för att fylla grupperna med användare. Slutligen skapar och kör vi ett enkelt Windows PowerShell skapar och fyller i grupperna.

Den första CSV-filen lägger till en eller flera grupper i en eller flera webbplatssamlingar och kommer att ha följande struktur:

Sidhuvud:

Site,Group,PermissionLevels

Artikel:

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

Här är en exempelfil:

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

Den andra CSV-filen lägger till en eller flera användare i en eller flera grupper och kommer att ha följande struktur:

Sidhuvud:

Group,LoginName,Site

Artikel:

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

Här är en exempelfil:

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

I nästa steg måste du ha de två CSV-filerna sparade på enheten. Här är exempelkommandon som använder både CSV-filer och för att lägga till behörigheter och gruppmedlemskap:

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}

Skriptet importerar CSV-filens innehåll och använder värdena i kolumnerna för att fylla i parametrarna för kommandona New-SPOSiteGroup och Add-SPOUser. I vårt exempel sparar vi den i mappen O365Admin på enhet C, men du kan spara den var du vill.

Nu tar vi bort flera personer för flera grupper på olika webbplatser med hjälp av samma CSV-fil. Här är ett exempelkommando:

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

Skapa användarrapporter

Du kanske vill få en enkel rapport för några webbplatser och visa användarna för dessa webbplatser, deras behörighetsnivå och andra egenskaper. Så här ser syntaxen ut:

$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

Då hämtar du data för dessa tre webbplatser och skriver dem till en textfil på din lokala enhet. Observera att parametern Lägg till lägger till nytt innehåll i en befintlig fil.

Låt oss till exempel köra en rapport på webbplatserna ContosoTest, TeamSite01 och Project01 för Contoso1-klientorganisationen:

$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

Observera att vi var tvungna att endast ändra $site variabeln. Variabeln $tenant behåller sitt värde genom alla tre körningarna av kommandot.

Men hur gör du om du vill göra det här för varje webbplats? Du kan göra det här utan att behöva skriva alla dessa webbplatser med hjälp av det här kommandot:

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

Den här rapporten är ganska enkel och du kan lägga till mer kod för att skapa mer specifika rapporter eller rapporter som innehåller mer detaljerad information. Men det bör ge dig en uppfattning om hur du använder SharePoint Online Management Shell för att hantera användare i SharePoint Online-miljön.

Se även

Anslut till SharePoint Online PowerShell

Hantera SharePoint Online med PowerShell

Hantera Microsoft 365 med PowerShell

Börja använda PowerShell för Microsoft 365