Poniższe rozwiązanie wymaga jedynie SharePoint Online Management Shell.





Każda witryna programu SharePoint posiada domyślnie grupy uprawnień, dzięki którym można przypisać uprawnienia użytkownikom.  Te grupy można zobaczyć w uprawnieniach witryny:


a użytkowników ze wszystkich grup pod adresem https://Tenant.sharepoint.com/sites/MYSITE/_layouts/15/people.aspx?MembershipGroupId=0 :






Nazwy zależne od języka


Jak opisano w artykule ograniczenia interfejsu użytkownika wielojęzycznych, nazwy grup uprawnień są zawsze wyświetlane w domyślnym języku witryny. Oznacza to, że chociaż na angielski witryny domyślne grupy są nazywane "Test dla właścicieli" i "Odwiedzający testu", na niemieckiej stronie będą "Besitzer von Test" i "Besucher von Test":



Jeśli masz wiele witryn programu SharePoint i chcesz przypisać użytkowników do odpowiednich grup uprawnień, np. uzytkownika Anna do grupy właścicieli witryny, niezależnie od języka witryny, nie będziesz w stanie uzyskać odpowiedniej grupy, ani przez nazwę:


ani przez id grupy, jako ze jest to indeks w kolekcji i moze różnić się w zaleznosci od witryny.


Wybór grupy w oparciu o uprawnienia



Chociaż jest to stosunkowo łatwe poruszanie się po interfejsie użytkownika i wybierz grupę pod nazwą jêzyka (zakładając, że znasz język wystarczająco :)), za pomocą programu SharePoint Online Management Shell może chcesz wybrać grupy z uprawnienia na wszystkich zbiorów witryn bez względu na ich język domyślny i cz³onków zależne od języka. Można to zrobić przez porównanie Roles Właściwość SiteGroup.

Poniżej znajdują się kilka poziomów uprawnień, które zostały utworzone z nową witrynę:


$ViewerRoles ={View Only}
$ReaderRoles ={Read}
$EditorRoles ={Edit}
$OwnerRoles ={Full Control}

Następujące polecenia cmdlet można uzyskać grupy, których rola odpowiada do jednej z ról zdefiniowane powyżej (tylko Zamień $role na $ViewerRoles, lub $EditorRoles, itp.): 
$Group = Get-SPOSiteGroup -Site $siteUrl | where {$_.Roles -eq $role}

W wielu witrynach


Można również rozwinąć polecenia cmdlet można pobrać grup ze wszystkich stron:
$sites =get-sposite
foreach ($site in $sites) {Get-SPOSiteGroup -Site $site.Url | where {$_.Roles -eq {View Only}}}

Wynik jest nudne, ponieważ domyślna grupa z widoku tylko poziom dostępu zawsze nazywa się "Excel Services widzów":


ale już bardziej interesująca dla czytelników:
foreach ($site in $sites) {Get-SPOSiteGroup -Site $site.Url | where {$_.Roles -eq {Read}}}

Można oczywiście, robimy to do odpowiedniego skryptu zamiast pochopnych jednowierszowe, gdzie możemy nie tylko pobrać grupy ale również wyeksportować do pliku CSV:
$csvPath= "C:\Users\Public\ttttes.csv"
Connect-SPOService
 
$sites=Get-SPOSite
#$sites=Get-SPOSite  | where {$_.Url -match "whatever"}   ## Uncomment and use only if you want to select sites based on some condition
 
foreach ($site in $sites)
{
    $group=(Get-SPOSiteGroup -Site $site.Url  | where {$_.Roles -eq {View Only}})
    $group | Add-Member -NotePropertyName SiteUrl -NotePropertyValue $site.Url   
    $group | Export-Csv -Path $csvPath -Append 
}


Drobnym drukiem:
Powyższe rozwiązanie działa tylko z domyślnymi grupami i zestawami uprawnień. Jeśli Pełna kontrola jest przypisana do samodzielnie utworzonej grupy 'Motylek', skrypt zakończy się niepowodzeniem.
Rozwiązanie zawiera opis domyślnych grup uprawnień programu SharePoint i ich zachowania. Jeśli Twoje grupy są niestandardowe tworzone lub modyfikowane, rozwiązanie może nie być stosowane. 



Zobacz Także



Get-SPOSiteGroup cmdlet
Introduction to SharePoint Online Management Shell