Správa uživatelů a skupin SharePointu pomocí PowerShellu

Tento článek se týká Microsoft 365 Enterprise i Office 365 Enterprise.

Pokud jste správce SharePointu, který pracuje s velkými seznamy uživatelských účtů nebo skupin a chce mít jednodušší způsob jejich správy, můžete použít PowerShell pro Microsoft 365.

Než začnete, postupy v tomto článku vyžadují připojení k SharePointu. Pokyny najdete v tématu Připojení k SharePointu PowerShellu.

Získání seznamu webů, skupin a uživatelů

Než začneme spravovat uživatele a skupiny, musíte získat seznamy webů, skupin a uživatelů. Tyto informace pak můžete použít k práci s příkladem v tomto článku.

Pomocí tohoto příkazu získáte seznam webů ve vašem tenantovi:

Get-SPOSite

Pomocí tohoto příkazu získáte seznam skupin ve vašem tenantovi:

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

Pomocí tohoto příkazu získáte seznam uživatelů ve vašem tenantovi:

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

Přidání uživatele do skupiny Správci kolekce webů

Pomocí rutiny Set-SPOUser přidáte uživatele do seznamu správců webů v kolekci webů.

$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

Pokud chcete použít tyto příkazy, nahraďte vše v uvozovkách, včetně < znaků a > , správnými názvy.

Tato sada příkazů například přidá Opal Castillo (uživatelské jméno opalc) do seznamu správců kolekce webů v kolekci webů ContosoTest v tenantské službě Contoso:

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

Tyto příkazy můžete zkopírovat a vložit do Poznámkového bloku, změnit hodnoty proměnných pro $tenant, $site a $user na skutečné hodnoty z vašeho prostředí a potom je vložit do okna prostředí SharePoint Management Shell a spustit je.

Přidání uživatele do jiných skupin kolekce webů

V tomto úkolu použijeme rutinu Add-SPOUser k přidání uživatele do skupiny SharePointu v kolekci webů.

$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

Pojďme například přidat Glena Rifeho (uživatelské jméno glenr) do skupiny Auditori v kolekci webů ContosoTest v tenantovi contoso:

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

Vytvoření skupiny kolekce webů

Pomocí rutiny New-SPOSiteGroup vytvoříte novou skupinu SharePointu a přidáte ji do kolekce webů.

$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

Vlastnosti skupiny, jako jsou úrovně oprávnění, můžete později aktualizovat pomocí rutiny Set-SPOSiteGroup .

Do kolekce webů contosotest v tenantské službě contoso přidáme například skupinu Auditori s oprávněními Jen pro zobrazení:

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

Odebrání uživatelů ze skupiny

Někdy je potřeba odebrat uživatele z webu nebo dokonce ze všech webů. Zaměstnanec se možná přesune z jedné divize do druhé nebo opustí společnost. V uživatelském rozhraní to můžete snadno udělat pro jednoho zaměstnance, ale není to snadné, když potřebujete přesunout kompletní oddělení z jednoho webu na druhý.

Pomocí prostředí SharePoint Management Shell a souborů CSV je to ale rychlé a snadné. V tomto úkolu použijete Windows PowerShell k odebrání uživatele ze skupiny zabezpečení kolekce webů. Pak použijete soubor CSV a odeberete spoustu uživatelů z různých webů.

K odebrání jednoho uživatele Microsoftu 365 ze skupiny kolekce webů použijeme rutinu Remove-SPOUser, abychom viděli syntaxi příkazu. Syntaxe vypadá takto:

$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

Odebereme například BobbyHo Overbyho ze skupiny auditoři v kolekci webů contosotest v tenantovi contoso:

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

Předpokládejme, že chceme Odebrat Bobbyho ze všech skupin, ve kterých je momentálně. Uděláte to takto:

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

Upozornění

Toto je jenom příklad. Tento příkaz byste neměli spouštět, pokud ve skutečnosti není nutné odebrat uživatele z každé skupiny, například pokud uživatel opustí společnost.

Automatizace správy rozsáhlých seznamů uživatelů a skupin

Pokud chcete na sharepointové weby přidat velký počet účtů a udělit jim oprávnění, můžete použít Centrum pro správu Microsoftu 365, jednotlivé příkazy PowerShellu nebo PowerShell a soubor CSV. Z těchto možností je soubor CSV nejrychlejším způsobem, jak tuto úlohu automatizovat.

Základním procesem je vytvoření souboru CSV, který obsahuje hlavičky (sloupce), které odpovídají parametrům, které Windows PowerShell skript potřebuje. Takový seznam můžete snadno vytvořit v Excelu a pak ho exportovat jako soubor CSV. Pak pomocí Windows PowerShell skriptu iterujete záznamy (řádky) v souboru CSV a přidáte uživatele do skupin a skupiny na weby.

Vytvoříme například soubor CSV, který definuje skupinu kolekcí webů, skupin a oprávnění. Dále vytvoříme soubor CSV, který naplní skupiny uživateli. Nakonec vytvoříme a spustíme Windows PowerShell skript, který vytvoří a naplní skupiny.

První soubor CSV přidá jednu nebo více skupin do jedné nebo více kolekcí webů a bude mít tuto strukturu:

Záhlaví:

Site,Group,PermissionLevels

Položky:

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

Tady je příklad souboru:

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

Druhý soubor CSV přidá jednoho nebo více uživatelů do jedné nebo více skupin a bude mít tuto strukturu:

Záhlaví:

Group,LoginName,Site

Položky:

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

Tady je příklad souboru:

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

Pro další krok musíte mít na jednotce uložené dva soubory CSV. Tady jsou ukázkové příkazy, které používají soubory CSV i k přidání oprávnění a členství ve skupinách:

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}

Skript importuje obsah souboru CSV a pomocí hodnot ve sloupcích naplní parametry příkazů New-SPOSiteGroup a Add-SPOUser . V našem příkladu tento soubor ukládáme do složky O365Admin na jednotce C, ale můžete ho uložit, kam budete chtít.

Teď odebereme skupinu lidí z několika skupin na různých webech pomocí stejného souboru CSV. Tady je příklad příkazu:

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

Generování uživatelských sestav

Můžete chtít získat sestavu pro několik webů a zobrazit uživatele těchto webů, jejich úroveň oprávnění a další vlastnosti. Syntaxe vypadá takto:

$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

Tím získáte data pro tyto tři weby a zapíšete je do textového souboru na místním disku. Parametr –Append přidá nový obsah do existujícího souboru.

Pojďme například spustit sestavu na webech ContosoTest, TeamSite01 a Project01 pro tenanta 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

Museli jsme změnit pouze proměnnou $site . Proměnná $tenant uchovává svoji hodnotu při všech třech spuštěních příkazu.

Co kdybyste to ale chtěli udělat pro každý web? Můžete to udělat bez nutnosti zadávat všechny tyto weby pomocí tohoto příkazu:

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

Tato sestava je poměrně jednoduchá a můžete přidat další kód a vytvořit konkrétnější sestavy nebo sestavy, které obsahují podrobnější informace. To by vám ale mělo poskytnout představu o tom, jak používat prostředí SharePoint Management Shell ke správě uživatelů v prostředí SharePointu.

Viz také

Připojení k SharePointu PowerShellu

Správa SharePointu pomocí PowerShellu

Správa Microsoftu 365 pomocí PowerShellu

Začínáme s PowerShellem pro Microsoft 365