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ávců webu
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ů webu 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 této úloze pomocí rutiny Add-SPOUser
přidáme 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
Create 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 pomocí Windows PowerShell odeberete 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
Tato funkce vezme data pro tyto tři weby a zapíše 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