Public/Get-IntuneRoleAssignment.ps1
|
function Get-IntuneRoleAssignment { <# .SYNOPSIS Returns a readable view of Intune RBAC role assignments. .PARAMETER Name Filters assignments by exact display name. .PARAMETER Id Filters assignments by assignment ID. .EXAMPLE Get-IntuneRoleAssignment .EXAMPLE Get-IntuneRoleAssignment -Name 'UK Helpdesk' #> [CmdletBinding(DefaultParameterSetName = 'All')] [OutputType([object[]])] param( [Parameter(Mandatory, ParameterSetName = 'ByName')] [ValidateNotNullOrEmpty()] [string] $Name, [Parameter(Mandatory, ParameterSetName = 'ById')] [guid] $Id ) $definitions = @(Get-IntuneAccessRoleDefinitions) $assignments = @(Get-IntuneAccessRoleAssignments -RoleDefinition $definitions -ResolveNames) if ($PSCmdlet.ParameterSetName -eq 'ByName') { $assignments = @($assignments | Where-Object Name -EQ $Name) } elseif ($PSCmdlet.ParameterSetName -eq 'ById') { $assignments = @($assignments | Where-Object Id -EQ $Id.Guid) } if ($PSCmdlet.ParameterSetName -ne 'All' -and $assignments.Count -eq 0) { $identity = if ($PSCmdlet.ParameterSetName -eq 'ByName') { $Name } else { $Id.Guid } throw "No Intune RBAC role assignment matched '$identity'." } return $assignments } |