Cmdlets/Set-SPOAssociatedGroups/Set-SPOAssociatedGroups.psm1
<#
Author:Roger Cormier Company:Microsoft Description: This cmdlet can be used to set the associated visitors, members, or owners groups for a SharePoint Online site #> function Set-SPOAssociatedGroups { [cmdletbinding()] param( [parameter(mandatory=$True, position=0, HelpMessage="Specify the URL of the SharePoint Online Site" )] [URI]$SiteURI, [parameter(Mandatory=$True, position=1)] [System.Management.Automation.PSCredential]$Credential, [parameter(mandatory=$False, position=2, HelpMessage="Speify the name of the associated visitor group for the site")] [String]$AssociatedVisitorGroup, [parameter(mandatory=$False, position=3, HelpMessage="Speify the name of the associated member group for the site")] [String]$AssociatedMemberGroup, [parameter(mandatory=$False, position=4, HelpMessage="Speify the name of the associated owner group for the site")] [String]$AssociatedOwnerGroup ) try { try { Get-PnPConnection | Out-Null if(-not ((Get-PnPConnection).url.trimend("/") -eq $SiteURI.AbsoluteUri.TrimEnd("/"))) { Disconnect-PnPOnline Connect-PnPOnline -Url $SiteURI.AbsoluteUri -Credentials $Credential | Out-Null } } catch { Connect-PnPOnline -Url $SiteURI.AbsoluteUri -Credentials $Credential | Out-Null } } catch { write-host "Could not connect to web `'$($SiteURI.AbsoluteUri)`'" } if(-not [String]::IsNullOrEmpty($AssociatedVisitorGroup)) { Set-PnPGroup -Identity (Get-PnPGroup $AssociatedVisitorGroup).ID -SetAssociatedGroup Visitors -AddRole "Read" } if(-not [String]::IsNullOrEmpty($AssociatedMemberGroup)) { Try { Set-PnPGroup -Identity (Get-PnPGroup $AssociatedMemberGroup).ID -SetAssociatedGroup Members -AddRole "Edit" } Catch { Write-host "Could not set associated member group $($AssociatedMemberGroup) in site $($SiteURI.AbsoluteUri)" -ForegroundColor Yellow } } if(-not [String]::IsNullOrEmpty($AssociatedOwnerGroup)) { Set-PnPGroup -Identity (Get-PnPGroup $AssociatedOwnerGroup).ID -SetAssociatedGroup Owners -AddRole "Full Control" } } |