Opdater SharePoint-grupper i alle webs i en SiteCollection med PowerShell
Et PowerShell-script, der giver membergruppen i hvert web i en SiteCollection Contribute i stedet for Edit.
Lad os sige, at man har et væld af subwebs i en sitecollection. Hvert web har unikke rettigheder og unikke grupper.
Man vil gerne opdatere alle membergrupper, så de har Contribute-rettigheder i stedet for Edit-rettigheder. Skal alle ownergrupper eller visitorgrupper opdateres i stedet, ændres scriptet bare tilsvarende.
Sådan gør man:
1# Get the URL of your SiteCollection
2$site = Get-SPSite https://intranet.domain.com/path/site
3
4#Go through each site
5foreach ($web in $site.AllWebs)
6{
7# Get the Member group of the current site
8$group = $web.Groups | Where {$_.Name -Like 'Member*'}
9echo $group.Name
10$ra = $group.ParentWeb.RoleAssignments.GetAssignmentByPrincipal($group)
11
12# Define the permissionlevel you wish to remove
13$rd = $group.ParentWeb.RoleDefinitions["Contribute"]
14$ra.RoleDefinitionBindings.Add($rd)
15
16# Define the permissionlevel you wish to add
17$rd = $group.ParentWeb.RoleDefinitions["Edit"]
18$ra.RoleDefinitionBindings.Remove($rd)
19
20$ra.Update()
21$group.Update()
22$web.Dispose()
23}