Behandle SharePoint-brukere og -grupper med PowerShell

Denne artikkelen gjelder for både Microsoft 365 Enterprise og Office 365 Enterprise.

Hvis du er en SharePoint-administrator som arbeider med store lister over brukerkontoer eller grupper og ønsker en enklere måte å administrere dem på, kan du bruke PowerShell for Microsoft 365.

Før du begynner, krever fremgangsmåtene i denne artikkelen at du kobler til SharePoint. Hvis du vil ha instruksjoner, kan du se Koble til SharePoint PowerShell

Få en liste over områder, grupper og brukere

Før vi begynner å administrere brukere og grupper, må du få lister over nettsteder, grupper og brukere. Deretter kan du bruke denne informasjonen til å arbeide gjennom eksemplet i denne artikkelen.

Få en liste over områdene i leieren med denne kommandoen:

Get-SPOSite

Få en liste over gruppene i leieren med denne kommandoen:

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

Få en liste over brukerne i leieren med denne kommandoen:

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

Legge til en bruker i gruppen Administratorer for områdesamling

Du bruker cmdleten Set-SPOUser til å legge til en bruker i listen over nettstedsadministratorer i en områdesamling.

$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

Hvis du vil bruke disse kommandoene, erstatter du alt i anførselstegnene, inkludert < tegnene > , med de riktige navnene.

Dette settet med kommandoer legger for eksempel Opal Castillo (brukernavn opalc) til listen over administratorer for områdesamling i ContosoTest-områdesamlingen i Contoso-leier:

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

Du kan kopiere og lime inn disse kommandoene i Notisblokk, endre variabelverdiene for $tenant, $site og $user til faktiske verdier fra miljøet, og deretter lime det inn i sharepoint management shell-vinduet for å kjøre dem.

Legge til en bruker i andre områdesamlingsgrupper

I denne oppgaven skal vi bruke cmdleten Add-SPOUser til å legge til en bruker i en SharePoint-gruppe i en områdesamling.

$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

La oss for eksempel legge til Glen Rife (brukernavn-glenr) i Revisorer-gruppen i ContosoTest-områdesamlingen i contoso-leieforholdet:

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

Opprette en områdesamlingsgruppe

Du bruker cmdleten New-SPOSiteGroup til å opprette en ny SharePoint-gruppe og legge den til i en områdesamling.

$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

Gruppeegenskaper, for eksempel tilgangsnivåer, kan oppdateres senere ved hjelp av cmdleten Set-SPOSiteGroup .

La oss for eksempel legge til Revisorer-gruppen med bare visningstillatelser i contosotest-områdesamlingen i contoso-leieforholdet:

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

Fjerne brukere fra en gruppe

Noen ganger må du fjerne en bruker fra et nettsted eller til og med alle områder. Kanskje den ansatte flytter fra en divisjon til en annen eller forlater selskapet. Du kan enkelt gjøre dette for én ansatt i brukergrensesnittet, men dette er ikke enkelt når du må flytte en fullstendig avdeling fra ett område til et annet.

Dette er imidlertid raskt og enkelt ved hjelp av SharePoint Management Shell- og CSV-filer. I denne oppgaven skal du bruke Windows PowerShell til å fjerne en bruker fra en sikkerhetsgruppe for områdesamling. Deretter bruker du en CSV-fil og fjerner mange brukere fra forskjellige områder.

Vi bruker cmdleten Remove-SPOUser til å fjerne én enkelt Microsoft 365-bruker fra en områdesamlingsgruppe, slik at vi kan se kommandosyntaksen. Slik ser syntaksen 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

La oss for eksempel fjerne Bobby Overby fra gruppen Revisorer for områdesamlingen i contosotest-områdesamlingen i contoso-leieforholdet:

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

La oss si at vi vil fjerne Bobby fra alle gruppene han er i. Slik gjør vi det:

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

Advarsel

Dette er bare et eksempel. Du bør ikke kjøre denne kommandoen med mindre du virkelig må fjerne en bruker fra hver gruppe, for eksempel hvis brukeren forlater firmaet.

Automatiser administrasjon av store lister over brukere og grupper

Hvis du vil legge til et stort antall kontoer på SharePoint-områder og gi dem tillatelser, kan du bruke Administrasjonssenter for Microsoft 365, individuelle PowerShell-kommandoer eller PowerShell og en CSV-fil. Av disse valgene er CSV-filen den raskeste måten å automatisere denne oppgaven på.

Den grunnleggende prosessen er å opprette en CSV-fil som har overskrifter (kolonner) som tilsvarer parameterne som Windows PowerShell skriptet trenger. Du kan enkelt opprette en slik liste i Excel og deretter eksportere den som en CSV-fil. Deretter bruker du et Windows PowerShell skript til å bla gjennom poster (rader) i CSV-filen og legge til brukere i grupper og grupper på områder.

La oss for eksempel opprette en CSV-fil for å definere en gruppe med nettstedssamlinger, grupper og tillatelser. Deretter oppretter vi en CSV-fil for å fylle ut gruppene med brukere. Til slutt skal vi opprette og kjøre et Windows PowerShell skript som oppretter og fyller ut gruppene.

Den første CSV-filen legger til én eller flere grupper i én eller flere områdesamlinger og vil ha denne strukturen:

Topptekst:

Site,Group,PermissionLevels

Element:

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

Her er en eksempelfil:

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 andre CSV-filen legger til én eller flere brukere i én eller flere grupper og vil ha denne strukturen:

Topptekst:

Group,LoginName,Site

Element:

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

Her er en eksempelfil:

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 neste trinn må du lagre de to CSV-filene på stasjonen. Her er eksempelkommandoer som bruker både CSV-filer og til å legge til tillatelser og gruppemedlemskap:

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 importerer CSV-filinnholdet og bruker verdiene i kolonnene til å fylle ut parameterne for kommandoene New-SPOSiteGroup og Add-SPOUser . I eksemplet vårt lagrer vi denne filen i O365Admin-mappen på stasjon C, men du kan lagre den der du vil.

La oss nå fjerne en rekke personer for flere grupper på forskjellige nettsteder ved hjelp av samme CSV-fil. Her er en eksempelkommando:

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

Generer brukerrapporter

Du ønsker kanskje å få en rapport for noen nettsteder og vise brukerne for disse områdene, tilgangsnivået og andre egenskaper. Slik ser syntaksen 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

Dette henter dataene for disse tre områdene og skriver dem til en tekstfil på den lokale stasjonen. Parameteren –Tilføy legger til nytt innhold i en eksisterende fil.

La oss for eksempel kjøre en rapport på ContosoTest-, TeamSite01- og Project01-nettstedene for Contoso1-leieren:

$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 måtte bare endre variabelen $site . Variabelen $tenant beholder verdien gjennom alle tre kjøringene av kommandoen.

Men hva om du vil gjøre dette for hvert område? Du kan gjøre dette uten å måtte skrive inn alle disse nettstedene ved hjelp av denne kommandoen:

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

Denne rapporten er ganske enkel, og du kan legge til mer kode for å opprette mer spesifikke rapporter eller rapporter som inneholder mer detaljert informasjon. Dette bør imidlertid gi deg et inntrykk av hvordan du bruker administrasjonsskallet for SharePoint til å administrere brukere i SharePoint-miljøet.

Se også

Koble til SharePoint PowerShell

Behandle SharePoint med PowerShell

Administrere Microsoft 365 med PowerShell

Komme i gang med PowerShell for Microsoft 365