Udostępnij za pośrednictwem


Zarządzanie użytkownikami i grupami programu SharePoint przy użyciu programu PowerShell

Ten artykuł dotyczy zarówno Microsoft 365 Enterprise, jak i Office 365 Enterprise.

Jeśli jesteś administratorem programu SharePoint, który pracuje z dużymi listami kont użytkowników lub grup i chce łatwiej nimi zarządzać, możesz użyć programu PowerShell dla platformy Microsoft 365.

Przed rozpoczęciem procedury opisane w tym artykule wymagają nawiązania połączenia z programem SharePoint. Aby uzyskać instrukcje, zobacz Łączenie z programem SharePoint PowerShell

Pobieranie listy witryn, grup i użytkowników

Zanim zaczniemy zarządzać użytkownikami i grupami, musisz uzyskać listy witryn, grup i użytkowników. Następnie możesz użyć tych informacji, aby zapoznać się z przykładem w tym artykule.

Pobierz listę witryn w dzierżawie za pomocą tego polecenia:

Get-SPOSite

Pobierz listę grup w dzierżawie za pomocą tego polecenia:

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

Pobierz listę użytkowników w dzierżawie za pomocą tego polecenia:

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

Dodawanie użytkownika do grupy administratorów witryny

Polecenie cmdlet służy Set-SPOUser do dodawania użytkownika do listy administratorów witryn w zbiorze witryn.

$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

Aby użyć tych poleceń, zastąp wszystkie elementy w cudzysłowie, w tym < znaki i > , prawidłowymi nazwami.

Na przykład ten zestaw poleceń dodaje opal Castillo (nazwa użytkownika opalc) do listy administratorów witryn w zbiorze witryn ContosoTest w dzierżawie firmy Contoso:

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

Możesz skopiować i wkleić te polecenia do Notatnika, zmienić wartości zmiennych dla $tenant, $site i $user na rzeczywiste wartości ze środowiska, a następnie wkleić je do okna powłoki zarządzania programu SharePoint, aby je uruchomić.

Dodawanie użytkownika do innych grup zbiorów witryn

W tym zadaniu użyjemy Add-SPOUser polecenia cmdlet, aby dodać użytkownika do grupy programu SharePoint w zbiorze witryn.

$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

Na przykład dodajmy Glen Rife (nazwa użytkownika glenr) do grupy Audytorzy w zbiorze witryn ContosoTest w dzierżawie contoso:

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

Twórca grupy zbiorów witryn

Polecenie cmdlet służy New-SPOSiteGroup do tworzenia nowej grupy programu SharePoint i dodawania jej do zbioru witryn.

$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

Właściwości grupy, takie jak poziomy uprawnień, można później zaktualizować przy użyciu Set-SPOSiteGroup polecenia cmdlet.

Na przykład dodajmy grupę Audytorzy z uprawnieniami Tylko widok do zbioru witryn contosotest w dzierżawie contoso:

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

Usuwanie użytkowników z grupy

Czasami trzeba usunąć użytkownika z witryny, a nawet wszystkich witryn. Być może pracownik przenosi się z jednego działu do drugiego lub opuszcza firmę. Możesz to zrobić dla jednego pracownika łatwo w interfejsie użytkownika, ale nie jest to łatwe, gdy trzeba przenieść pełny podział z jednej witryny do innej.

Jednak przy użyciu powłoki zarządzania programu SharePoint i plików CSV jest to szybkie i łatwe. W tym zadaniu użyjesz Windows PowerShell, aby usunąć użytkownika z grupy zabezpieczeń zbioru witryn. Następnie użyjesz pliku CSV i usuniesz wielu użytkowników z różnych witryn.

Użyjemy polecenia cmdlet "Remove-SPOUser", aby usunąć pojedynczego użytkownika platformy Microsoft 365 z grupy zbioru witryn, aby zobaczyć składnię poleceń. Oto jak wygląda składnia:

$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

Na przykład usuńmy Bobby'ego Overby'ego z grupy Audytorzy zbioru witryn w zbiorze witryn contosotest w dzierżawie contoso:

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

Załóżmy, że chcieliśmy usunąć Bobby'ego ze wszystkich grup, w których obecnie się znajduje. Oto jak to zrobić:

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

Ostrzeżenie

To tylko przykład. Nie należy uruchamiać tego polecenia, chyba że naprawdę trzeba usunąć użytkownika z każdej grupy, na przykład jeśli użytkownik opuści firmę.

Automatyzowanie zarządzania dużymi listami użytkowników i grup

Aby dodać dużą liczbę kont do witryn programu SharePoint i nadać im uprawnienia, możesz użyć Centrum administracyjne platformy Microsoft 365, poszczególnych poleceń programu PowerShell lub programu PowerShell i pliku CSV. Spośród tych opcji plik CSV jest najszybszym sposobem automatyzacji tego zadania.

Podstawowym procesem jest utworzenie pliku CSV zawierającego nagłówki (kolumny) odpowiadające parametrom, których potrzebuje skrypt Windows PowerShell. Możesz łatwo utworzyć taką listę w programie Excel, a następnie wyeksportować ją jako plik CSV. Następnie użyjesz skryptu Windows PowerShell, aby iterować rekordy (wiersze) w pliku CSV, dodając użytkowników do grup i grup do witryn.

Na przykład utwórzmy plik CSV, aby zdefiniować grupę zbiorów witryn, grup i uprawnień. Następnie utworzymy plik CSV, aby wypełnić grupy użytkownikami. Na koniec utworzymy i uruchomimy skrypt Windows PowerShell, który tworzy i wypełnia grupy.

Pierwszy plik CSV dodaje co najmniej jedną grupę do co najmniej jednego zbioru witryn i będzie miał następującą strukturę:

Nagłówka:

Site,Group,PermissionLevels

Element:

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

Oto przykładowy plik:

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

Drugi plik CSV dodaje co najmniej jednego użytkownika do co najmniej jednej grupy i będzie miał następującą strukturę:

Nagłówka:

Group,LoginName,Site

Element:

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

Oto przykładowy plik:

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

W następnym kroku na dysku muszą być zapisane dwa pliki CSV. Oto przykładowe polecenia, które używają zarówno plików CSV, jak i do dodawania uprawnień i członkostwa w grupie:

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}

Skrypt importuje zawartość pliku CSV i używa wartości w kolumnach, aby wypełnić parametry poleceń New-SPOSiteGroup i Add-SPOUser . W naszym przykładzie zapisujemy ten plik w folderze O365Admin na dysku C, ale można go zapisać w dowolnym miejscu.

Teraz usuńmy grupę osób dla kilku grup w różnych witrynach przy użyciu tego samego pliku CSV. Oto przykładowe polecenie:

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

Generowanie raportów użytkowników

Możesz pobrać raport dla kilku witryn i wyświetlić użytkowników dla tych witryn, ich poziomu uprawnień i innych właściwości. Tak wygląda składnia:

$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

Spowoduje to przechwycenie danych dla tych trzech witryn i zapisanie ich w pliku tekstowym na dysku lokalnym. Parametr — dołączanie dodaje nową zawartość do istniejącego pliku.

Na przykład uruchomimy raport w witrynach ContosoTest, TeamSite01 i Project01 dla dzierżawy contoso1:

$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

Musieliśmy zmienić tylko zmienną $site . Zmienna $tenant zachowuje swoją wartość przez wszystkie trzy uruchomienia polecenia.

Co jednak zrobić, jeśli chcesz to zrobić dla każdej witryny? Można to zrobić bez konieczności wpisywania wszystkich tych witryn internetowych za pomocą następującego polecenia:

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

Ten raport jest dość prosty i można dodać więcej kodu w celu utworzenia bardziej szczegółowych raportów lub raportów zawierających bardziej szczegółowe informacje. Powinno to jednak dać wyobrażenie o tym, jak używać powłoki zarządzania programu SharePoint do zarządzania użytkownikami w środowisku programu SharePoint.

Zobacz też

Nawiązywanie połączenia z programem SharePoint PowerShell

Zarządzanie programem SharePoint przy użyciu programu PowerShell

Zarządzanie platformą Microsoft 365 za pomocą programu PowerShell

Wprowadzenie do programu PowerShell dla platformy Microsoft 365