Private/Resolve-AssignmentReason.ps1
|
function Resolve-AssignmentReason { param ( [object[]]$Assignments, [object[]]$GroupMembershipIds, [string[]]$IncludeReasons = @("All Users") ) $isExcluded = $false $excludingAssignment = $null $inclusionReason = $null $inclusionAssignment = $null foreach ($a in $Assignments) { if ($a.Reason -eq "Group Exclusion" -and $GroupMembershipIds -contains $a.GroupId) { $isExcluded = $true $excludingAssignment = $a } elseif (-not $inclusionReason) { if ($IncludeReasons -contains $a.Reason) { $inclusionReason = $a.Reason $inclusionAssignment = $a } elseif ($a.Reason -eq "Group Assignment" -and $GroupMembershipIds -contains $a.GroupId) { $inclusionReason = $a.Reason $inclusionAssignment = $a } } } if ($isExcluded) { $suffix = Format-AssignmentFilter -FilterId $excludingAssignment.FilterId -FilterType $excludingAssignment.FilterType return "Excluded$suffix" } if ($inclusionReason) { $suffix = Format-AssignmentFilter -FilterId $inclusionAssignment.FilterId -FilterType $inclusionAssignment.FilterType return "$inclusionReason$suffix" } return $null } |