Hantera SharePoint-användare och -grupper med PowerShell

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

Om du är en SharePoint-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 kräver procedurerna i den här artikeln att du ansluter till SharePoint. Anvisningar finns i Ansluta till SharePoint PowerShell

Hämta en lista över webbplatser, grupper och användare

Innan vi börjar hantera användare och grupper måste du hämta 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 platserna i din klientorganisation med det här kommandot:

Get-SPOSite

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

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

Hämta en lista över användare i din klientorganisation med det här kommandot:

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

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

Du använder cmdleten Set-SPOUser för att lägga till en användare i listan över webbplatsadministratörer i 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 citattecknen, inklusive < tecknen och > , med rätt namn.

Till exempel lägger den här uppsättningen kommandon till Opal Castillo (användarnamn opalc) i listan över administratörer för webbplatssamlingar i ContosoTest-webbplatssamlingen i Contoso-innehavet:

$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 dessa kommandon i Anteckningar, ändra variabelvärdena för $tenant, $site och $user till faktiska värden från din miljö och sedan klistra in dem i SharePoint 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 Add-SPOUser för att lägga till en användare i en 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

Låt oss till exempel lägga till Glen Rife (användarnamn glenr) i gruppen Granskare på ContosoTest-webbplatssamlingen i contoso-innehavet:

$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 cmdleten New-SPOSiteGroup för att skapa en ny SharePoint-grupp 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 cmdleten Set-SPOSiteGroup .

Låt oss till exempel lägga till gruppen Granskare med behörighet att visa endast till contosotest-webbplatssamlingen i contoso-klientorganisationen:

$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 måste du ta bort en användare från en webbplats eller till och med alla webbplatser. Kanske flyttar medarbetaren från en division till en annan eller lämnar företaget. Du kan enkelt göra detta för en anställd i användargränssnittet, men det är inte lätt att göra när du måste flytta en fullständig division från en plats till en annan.

Men genom att använda SharePoint Management Shell- och CSV-filer är detta snabbt och enkelt. I den här uppgiften använder du Windows PowerShell för att ta bort en användare från en säkerhetsgrupp för webbplatssamlingen. Sedan använder du en CSV-fil och tar bort många användare från olika webbplatser.

Vi använder 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 tar till exempel bort Bobby Overby från gruppen Granskare för webbplatssamlingen i contosotest-webbplatssamlingen i contoso-innehavet:

$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 ville ta bort Bobby från alla grupper han för närvarande är i. Så här gör vi så här:

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

Varning

Detta är bara ett exempel. Du bör inte köra det här kommandot om 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örigheter kan du använda Administrationscenter för Microsoft 365, enskilda PowerShell-kommandon eller PowerShell och en CSV-fil. Av dessa alternativ är CSV-filen det snabbaste sättet att automatisera den här uppgiften.

Den grundläggande processen är att skapa en CSV-fil som har rubriker (kolumner) som motsvarar de parametrar som Windows PowerShell skriptet 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 skript för att iterera genom poster (rader) i CSV-filen och lägga till användarna i grupper och grupper på webbplatser.

Vi ska till exempel skapa en CSV-fil för att definiera en grupp med webbplatssamlingar, grupper och behörigheter. Därefter skapar vi en CSV-fil för att fylla i grupperna med användare. Slutligen skapar och kör vi ett Windows PowerShell skript som skapar och fyller i grupperna.

Den första CSV-filen lägger till en eller flera grupper i en eller flera webbplatssamlingar och har den här strukturen:

Huvudet:

Site,Group,PermissionLevels

Objekt:

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 har den här strukturen:

Huvudet:

Group,LoginName,Site

Objekt:

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

För nästa steg måste du ha sparat de två CSV-filerna 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-filinnehållet 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 här filen i mappen O365Admin på enhet C, men du kan spara den var du vill.

Nu ska vi ta bort en massa personer för flera grupper på olika webbplatser med samma CSV-fil. Här är ett exempel på ett kommando:

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

Generera användarrapporter

Du kanske vill hämta en 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

Detta hämtar data för dessa tre platser och skriver dem till en textfil på din lokala enhet. Parametern – Lägg till lägger till nytt innehåll i en befintlig fil.

Vi kör till exempel en rapport på contosoTest-, TeamSite01- och Project01-webbplatserna 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

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

Men vad händer om du vill göra detta för varje webbplats? Du kan göra detta 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 detta bör ge dig en uppfattning om hur du använder SharePoint Management Shell för att hantera användare i SharePoint-miljön.

Se även

Ansluta till SharePoint PowerShell

Hantera SharePoint med PowerShell

Hantera Microsoft 365 med PowerShell

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