Rolleninhaber ermitteln

Wie bereits im Abschnitt Allgemeines über Berechtigungen beschrieben, bestehen die effektiven Berechtigungen für Aktionen in DSM 2014.1, aus einer Kombination von Benutzer (oder externer Gruppe), Rolle und Kontext. Um zu ermitteln, wer in welchem Kontext Inhaber einer Rolle ist, gibt es mehrere Möglichkeiten, da es sich bei diesem Konstrukt ja um eine Beziehung zwischen drei Objekten handelt.


Beispiele:


Hinweis: Voraussetzung für die Beispiele ist ein verbundenes PowerShell-Laufwerk.


Im Folgenden wird ermittelt, wer Inhaber der Rolle "Helpdesk User" ist und in welchem Kontext. Dazu wird zunächst die Rolle "Helpdesk User" abgerufen und über die Assoziationen vom Typ 'RoleOwners' bzw. 'RoleExternalGroups' die Rolleninhaber für Benutzer und externe Gruppen bestimmt:


$MyRole = Get-EmdbRole "Helpdesk User"

$MyRoleOwners = $MyRole.GetAssociations("RoleOwners")

$MyRoleExternalGroups = $MyRole.GetAssociations("RoleExternalGroups")


Die Assoziationen in den Listen $MyRoleOwners bzw. $MyRoleExternalGroups machen nun die gesuchten Informationen zugänglich:


$MyRoleOwners | Foreach-Object { $_.GetTargetObject() }


Das Beispiel liefert alle Inhaber der Rolle 'Helpdesk User'. Analog lassen sich berechtigte externe Gruppen ermitteln:


$MyRoleExternalGroups | Foreach-Object { $_.GetTargetObject() }


Um die Informationen sinnvoll nutzen zu können, muß nun noch der Kontext ermittelt werden. Auch diese Information wird aus den Assoziationen 'RoleOwners' bzw. 'RoleExternalGroups' ermittelt:


$MyRoleOwners | Foreach-Object { $_.GetGrantedObject() }

$MyRoleExternalGroups | Foreach-Object { $_.GetGrantedObject() }