Jump to content

AD effective permission


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Moin,

 

ich habe hier mein Antwort gefunden (muss nur Username ändern).

 

Active Directory Berechtigungen dokumentieren (Denniver Reining - MVP)

 

$username = "proftest"
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$ct = [system.DirectoryServices.AccountManagement.ContextType]::Domain
$user = [system.DirectoryServices.AccountManagement.UserPrincipal]::FindByIdentity($ct,$username)
$groups = $user.GetAuthorizationGroups() 

$ADsearcher = New-Object System.DirectoryServices.DirectorySearcher 
$ADsearcher.Filter = "(objectcategory=OrganizationalUnit)"
$allobj = $ADsearcher.findall()

foreach ($obj in $allobj) {
 $permissions = $obj.GetDirectoryEntry().get_ObjectSecurity().Access 
 foreach ($permission in $permissions) { 
 $id = $permission.IdentityReference.tostring().split("\")[1]
	  if ( $id -eq $username) { 
	 Write-Host "~~~~~~~~~~~~~~~~~`rObject:" $obj.properties.name "/ " $obj.properties.objectclass "/ " $permission.ObjectType "/ " $permission.inheritedObjectType
	 Write-host $permission.IdentityReference " : " $permission.ActiveDirectoryRights " (" $permission.AccessControlType ")" 
	}
 	foreach ($group in $groups) {
		if ( $id -eq $group.name) {
		 Write-Host "~~~~~~~~~~~~~~~~~`rObject:" $obj.properties.name "/ " $obj.properties.objectclass "/ "$permission.ObjectType "/ " $permission.inheritedObjectType
		 Write-host $permission.IdentityReference " : " $permission.ActiveDirectoryRights " (" $permission.AccessControlType ")" 
		}
 }	
	}
}

 

MFG

Link zu diesem Kommentar

Hi samsam,

 

als weiterführenden Hinweis:

 

Um noch einmal einen Schritt zurück zu machen - die Auswertung schon vergebener Berechtigungen ist im Kern zu spät.

 

Langfristig hat es Sinn über ein Provisionierungssystem nachzudenken, welches Rechte vergibt und die Rollen, Rechte usw. entsprechend im Produkt dokumentiert.

 

Ich weiß, das ist nicht einfach und sehr aufwändig - es steigert die Dienstgüte jedoch massiv und vor allen Dingen aktiv anstatt reaktiv.

 

 

P.S.: Wenn ich mir das Script anschaue wird scheinbar "nur" die Identität des Benutzers selbst in den ACLs geprüft, nicht seine Gruppenmitgliedschaften. Sofern die Suche vollständig sein soll, müßten zusätzlich die Gruppenmitgliedschaften des Benutzers expandiert und zusätzlich geprüft werden.

 

Viele Grüße

olc

Link zu diesem Kommentar

Moin OLC,

 

danke für deine Beschreibung.

Vielleicht kannst du mich helfen. Ich benutze Quest AD-PowerShell und diese commands.

 

Zuerst diese:

 

$Deleg=Get-QADObject -SecurityMask Dacl -SizeLimit 0 | Get-QADPermission -Account ('contoso\Ed.price') -UseTokenGroups -Inherited -SchemaDefault

 

Dann diese:

 

$Delega | FT Account,TargetObject,Rights,RightsDisplay -AutoSize

 

195580

 

Ergebnis zeigt alle delegations rechte. Also, Ed.Price ist mitglied in eine groupe (SecDLGroup), SecDLGroup is mitglied in eine groupe (SecGlobalGroup), SecGlobalGroup hat nur direkte delegation rechte auf eine OU (Delegation). In Ergebnis zeigt dass Ed.Price rechte in diese OU hat (zeigt SecGlobalGroup).

 

Meine frage ist, wie kann ich in Ergbnis zeigen, wenn eine Groupe zeigt, zeig auch alle mitglied von die Groupe und weiter Groupe.

 

Danke

 

MFG

Link zu diesem Kommentar

Ach sorry OLC,

 

ich habe vergssen zu sagen. was ich zeigen lassen möchte, in diese command ist:

 

$Deleg=Get-QADObject "contoso.com/Delegation" -SecurityMask Dacl -SizeLimit 0 | Get-QADPermission -UseTokenGroups -Inherited -SchemaDefault

 

$Delega | FT Account,TargetObject,Rights,RightsDisplay -AutoSize

 

Jetzt in Ergebnis möchte alle Groupe mit mitglied auch gezeigt werden.

 

Vielen Dank

MFG

Link zu diesem Kommentar

Hi samsam,

 

ich hab mir das Script oben noch einmal angeschaut - und mir ist aufgefallen, daß die Grupenmitgliedschaften des Benutzers doch mit in die Analyse einbezogen werden: "$groups = $user.GetAuthorizationGroups()" --> Sorry für die Falschmeldung oben.

 

Nichtsdestotrotz noch einmal der Hinweis, daß das Konzept die Berechtigungen "nachträglich" zu prüfen zu kurz greift. Siehe meine Hinweise dazu oben.

 

Deine Anforderung, auch Gruppen und deren Gruppenmitgliedschaften (verschachtelt) mit in die Ausgabe zu legen, ist meines Erachtens nur über Sub-Abfragen in den Statements möglich. Du müßtest Dir mit Hilfe von Hashtables eigene PS-Objekte bauen, um alle Infos "nebeneinander" in einer Tabelle darstellen zu können.

 

Viele Grüße

olc

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...