functions/SPClientGroup/Remove-SPClientGroup.ps1
#Requires -Version 3.0 <# Remove-SPClientGroup.ps1 Copyright (c) 2017 karamem0 This software is released under the MIT License. https://github.com/karamem0/SPClient/blob/master/LICENSE #> function Remove-SPClientGroup { <# .SYNOPSIS Deletes the group. .DESCRIPTION The Remove-SPClientGroup function removes the group from the site. .PARAMETER ClientContext Indicates the client context. If not specified, uses default context. .PARAMETER ClientObject Indicates the group to delete. .PARAMETER Identity Indicates the group ID. .PARAMETER Name Indicates the group name. .EXAMPLE Remove-SPClientGroup $group .EXAMPLE Remove-SPClientGroup -Identity 7 .EXAMPLE Remove-SPClientGroup -Name "Custom Group" .INPUTS None or Microsoft.SharePoint.Client.Group .OUTPUTS None .LINK https://github.com/karamem0/SPClient/blob/master/doc/Remove-SPClientGroup.md #> [CmdletBinding(DefaultParameterSetName = 'ClientObject')] param ( [Parameter(Mandatory = $false)] [Microsoft.SharePoint.Client.ClientContext] $ClientContext = $SPClient.ClientContext, [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true, ParameterSetName = 'ClientObject')] [Microsoft.SharePoint.Client.Group] $ClientObject, [Parameter(Mandatory = $true, ParameterSetName = 'Identity')] [Alias('Id')] [int] $Identity, [Parameter(Mandatory = $true, ParameterSetName = 'Name')] [Alias('Title')] [string] $Name ) process { if ($ClientContext -eq $null) { throw "Cannot bind argument to parameter 'ClientContext' because it is null." } $ClientObjectCollection = $ClientContext.Site.RootWeb.SiteGroups if ($PSCmdlet.ParameterSetName -eq 'ClientObject') { if (-not $ClientObject.IsPropertyAvailable('Id')) { Invoke-ClientContextLoad ` -ClientContext $ClientContext ` -ClientObject $ClientObject ` -Retrieval 'Id' } } else { if ($PSCmdlet.ParameterSetName -eq 'Identity') { $PathMethod = New-Object Microsoft.SharePoint.Client.ObjectPathMethod( ` $ClientContext, ` $ClientObjectCollection.Path, ` 'GetById', ` [object[]]$Identity) $ClientObject = New-Object Microsoft.SharePoint.Client.Group($ClientContext, $PathMethod) Invoke-ClientContextLoad ` -ClientContext $ClientContext ` -ClientObject $ClientObject ` -Retrieval 'Id' trap { throw 'The specified group could not be found.' } } if ($PSCmdlet.ParameterSetName -eq 'Name') { $PathMethod = New-Object Microsoft.SharePoint.Client.ObjectPathMethod( ` $ClientContext, ` $ClientObjectCollection.Path, ` 'GetByName', ` [object[]]$Name) $ClientObject = New-Object Microsoft.SharePoint.Client.Group($ClientContext, $PathMethod) Invoke-ClientContextLoad ` -ClientContext $ClientContext ` -ClientObject $ClientObject ` -Retrieval 'Id' trap { throw 'The specified group could not be found.' } } } $ClientObjectCollection.Remove($ClientObject) $ClientContext.ExecuteQuery() } } |