Private/Invoke-MultipleAssignments.ps1
|
function Invoke-MultipleAssignments { param ( [Parameter(Mandatory = $true)] [Array]$Assignments, [Parameter(Mandatory = $false)] [string]$TargetGroupId = $null ) $processedAssignments = [System.Collections.ArrayList]::new() foreach ($assignment in $Assignments) { $assignmentInfo = @{ Reason = $assignment.Reason GroupId = $assignment.GroupId GroupName = $null } # Get group name for both assignments and exclusions if ($assignment.GroupId) { $groupInfo = Get-GroupInfo -GroupId $assignment.GroupId if ($groupInfo.Success) { $assignmentInfo.GroupName = $groupInfo.DisplayName } } # If we're checking for a specific group if ($TargetGroupId) { if ($assignment.GroupId -eq $TargetGroupId) { $null = $processedAssignments.Add($assignmentInfo) } } else { $null = $processedAssignments.Add($assignmentInfo) } } return $processedAssignments } |