Groups/Get-GPPGroup.ps1
function Get-GPPGroup { [OutputType('GPPItemGroup')] Param ( [Parameter(ParameterSetName = 'ByGPONameGroupName')] [Parameter(ParameterSetName = 'ByGPOIdGroupName')] [Parameter(ParameterSetName = 'ByGPPSectionGroupName')] [string]$Name, [Parameter(ParameterSetName = 'ByGPONameGroupLiteralName', Mandatory)] [Parameter(ParameterSetName = 'ByGPOIdGroupLiteralName', Mandatory)] [Parameter(ParameterSetName = 'ByGPPSectionGroupLiteralName', Mandatory)] [string]$LiteralName, [Parameter(ParameterSetName = 'ByGPONameGroupSID', Mandatory)] [Parameter(ParameterSetName = 'ByGPOIdGroupSID', Mandatory)] [Parameter(ParameterSetName = 'ByGPPSectionGroupSID', Mandatory)] [System.Security.Principal.SecurityIdentifier]$SID, [Parameter(ParameterSetName = 'ByGPONameGroupUID', Mandatory)] [Parameter(ParameterSetName = 'ByGPOIdGroupUID', Mandatory)] [Parameter(ParameterSetName = 'ByGPPSectionGroupUID', Mandatory)] [guid]$UID, [Parameter(ParameterSetName = 'ByGPONameGroupName', Mandatory)] [Parameter(ParameterSetName = 'ByGPONameGroupLiteralName', Mandatory)] [Parameter(ParameterSetName = 'ByGPONameGroupSID', Mandatory)] [Parameter(ParameterSetName = 'ByGPONameGroupUID', Mandatory)] [string]$GPOName, [Parameter(ParameterSetName = 'ByGPOIdGroupName', Mandatory)] [Parameter(ParameterSetName = 'ByGPOIdGroupLiteralName', Mandatory)] [Parameter(ParameterSetName = 'ByGPOIdGroupSID', Mandatory)] [Parameter(ParameterSetName = 'ByGPOIdGroupUID', Mandatory)] [guid]$GPOId, [Parameter(ParameterSetName = 'ByGPPSectionGroupName', Mandatory)] [Parameter(ParameterSetName = 'ByGPPSectionGroupLiteralName', Mandatory)] [Parameter(ParameterSetName = 'ByGPPSectionGroupSID', Mandatory)] [Parameter(ParameterSetName = 'ByGPPSectionGroupUID', Mandatory)] [GPPSection]$GPPSection, [Parameter(ParameterSetName = 'ByGPONameGroupName')] [Parameter(ParameterSetName = 'ByGPONameGroupLiteralName')] [Parameter(ParameterSetName = 'ByGPONameGroupSID')] [Parameter(ParameterSetName = 'ByGPONameGroupUID')] [Parameter(ParameterSetName = 'ByGPOIdGroupName')] [Parameter(ParameterSetName = 'ByGPOIdGroupLiteralName')] [Parameter(ParameterSetName = 'ByGPOIdGroupSID')] [Parameter(ParameterSetName = 'ByGPOIdGroupUID')] [GPPContext]$Context = $ModuleWideDefaultGPPContext ) if (-not $GPPSection) { if (-not $GPOId) { $GPOId = Convert-GPONameToID -Name $GPOName } $GroupsSection = Get-GPPSection -GPOId $GPOId -Context $Context -Type ([GPPType]::Groups) } $Groups = $GroupsSection.Members if ($Groups) { $FilterScript = if ($UID) { {$_.uid -eq $UID} } elseif ($SID) { {$_.Properties.groupSid -eq $SID} } else { if ($LiteralName) { {$_.Properties.groupName -eq $LiteralName} } else { $FilterName = if ($Name) { $Name } else { '*' } {$_.Properties.groupName -like $FilterName} } } } $Groups | Where-Object -FilterScript $FilterScript } |