makaroni
Goto Top

Domainenübergreifender Benutzer

Hallo zusammen,

Ich habe eine Domain mit mehreren Subdomains

test.de
a.test.de
b.test.de
c.test.de

Nun befindet sich Benutzer Hans in der Domain test.de. Dieser besitzt nur die Berechtigungen "Domain User".

Mit diesem Benutzer sollen Benutzer einer Gruppe rekursive ausgelesen werden. In dieser Gruppe befinden sich allerdings auch Benutzer der anderen Subdomains. Sprich ich kann mit Hans, diese Nutzer nicht auslesen (zumindest nicht über Powershell)

Nun benötige ich ein Konzept, in dem Hans z.B. einer Universellen oder localen Gruppe hinzugefügt wird und diese Gruppe zu den Domain Usern in jeder Subdomain hinzugefügt wird.

Allerdings können Globale Gruppen (wie z.B. die Domain User) keine lokalen oder universellen Gruppen aufnehmen.
Auch mit dem AGDLP Konzept komme ich irgendwie nicht ans Ziel da ich immer wieder bei der Aufnahme der Gruppen in die globale Gruppe scheitere.

Wie kann ich meinen Wunsch umsetzen, ohne in jeder Subdomain den gleichen Nutzer anlegen zu lassen?

Vielen Dank

Content-Key: 285652

Url: https://administrator.de/contentid/285652

Printed on: April 26, 2024 at 23:04 o'clock

Mitglied: 122990
122990 Oct 15, 2015 updated at 13:43:13 (UTC)
Goto Top
Moin,
das Skript bzw Befehl im Benutzerkontext eines privilegierten Nutzers ausführen welcher Domainübergreifend über entsprechende Enumeration-Rechte im AD verfügt, z.b die Enterprise-Admins.
Zur Info, einzelnen Befehlen lassen sich Credentials mitgeben ...

Gruß grexit
Member: makaroni
makaroni Oct 15, 2015 at 13:45:49 (UTC)
Goto Top
Ja, nur Enterprise Admins haben dann auch in allen Bereichen volle Rechte, das soll so nicht sein. Der User soll nur zum Auslesen da sein ;)
Mitglied: 122990
122990 Oct 15, 2015 updated at 13:48:48 (UTC)
Goto Top
Dann legst du dir halt deine eigene Gruppe an, machst den User dort Mitglied und erteilst der Gruppe nur die entsprechenden Rechte in allen Domains, feddich ...
Member: emeriks
emeriks Oct 15, 2015 at 18:19:16 (UTC)
Goto Top
Hi,
vollkommen falsch.
Sofern für die betreffende Gruppe diesem User oder einer seiner Gruppen nicht explitzit das Recht zum Lesen entzogen wurde, darf jeder Benutzer jede Gruppe in jeder Domäne des Forest auslesen, incl. der Gruppenmitglieder.
Da wir nicht wissen, wie Dein PS-Befehl/-Script aussieht, kann ich hier nur vermuten.

Wie sieht die Abfrage aus?

E.
Member: makaroni
makaroni Oct 16, 2015 updated at 07:35:18 (UTC)
Goto Top
Hey,

bei dem Code hat mir Uwe bereits hier im Forum geholfen. Aber anbei der Hauptteil des Codes:

$AD_Domain_User = $AD_Domain + $AD_User
$securepass = gc "D:\Scripts\password\pwd.txt" | convertto-SecureString   
$cred = New-Object PSCredential($AD_Domain_User, $securepass) 

$Global:all2 = @()
$gruppen | %{
    $mitglieder = @()
    $mitglieder += Get-AdGroupMember $_ -Recursive -Server $server -Credential $cred -EA SilentlyContinue
    $mitglieder += Get-ADGroupMember $_ -Server $Server -Credential $cred -EA SilentlyContinue | ?{$_.objectClass -eq "group"} | Get-ADGroupMember -Recursive   
    $additionalProperties | %{Add-Member -InputObject $mitglieder -MemberType NoteProperty -Name $_ -Value ''}   
    foreach($member in $mitglieder){ 
        $props = get-aduser -Server $server -Credential $cred $member.SamAccountName -Properties $additionalProperties | select $additionalProperties 
        $additionalProperties |%{$member.($_) = $props.($_)} 
    }  
    $mitglieder = $mitglieder | ?{$_.Enabled -eq $true} | sort Name | select -Unique
    $all += New-Object PSObject -Property @{Gruppe=$_;Mitglieder=$mitglieder} 
    $all2 += $mitglieder
}



Selbst wenn ich in jeder Subdomain den gleichen User mit dem Passwort anlege, bekomm ich einen Credential Error.
Get-AdGroupMember : The server has rejected the client credentials.
At D:\dienst\bluecoat\Scripts\scripts\bud.ps1:37 char:20
+     $mitglieder += Get-AdGroupMember $_ -Recursive -Server $server -Credential $ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (Internet-Basis:ADGroup) [Get-ADGroupMember], AuthenticationException
    + FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.Security.Authentication.AuthenticationException,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember
Mitglied: 122990
122990 Oct 16, 2015 updated at 09:19:02 (UTC)
Goto Top
$securepass = gc "D:\Scripts\password\pwd.txt" | convertto-SecureString
$cred = New-Object PSCredential($AD_Domain_User, $securepass)
Ich weiß nicht ob du das weißt aber wenn du das Passwort welches du als SecureString in einer Textdatei gespeichert hast wiederverwenden willst muss das Skript auf dem selben Rechner und dem selben Useraccount aufgerufen werden womit das Passwort in die Textdatei erzeugt wurde!
AD Gruppenmitglieder via Powershell von anderem Server auslesen..
Member: makaroni
makaroni Oct 16, 2015 at 12:45:47 (UTC)
Goto Top
Japs das ist mir bewusst face-smile ich führe es ja auch auf dem gleichen Rechner mit dem gleichen Benutzer aus face-smile
Member: emeriks
emeriks Oct 16, 2015 at 14:42:49 (UTC)
Goto Top
Und wenn Du das mit den Credentials komplett weg lässt? Dann laufen die Abfragen unter jenem User, welcher dieses Script ausführt.
Member: makaroni
makaroni Oct 20, 2015 at 08:59:18 (UTC)
Goto Top
Geht nicht, es wir von einem Server zentral gesteuert ;)
Member: emeriks
Solution emeriks Oct 20, 2015 updated at 12:03:48 (UTC)
Goto Top
Geht nicht, es wir von einem Server zentral gesteuert ;)
Und was heißt das bitte? Auch ein Computer ist ein Benutzer.
Member: makaroni
makaroni Oct 20, 2015 at 12:05:32 (UTC)
Goto Top
Ein zentraler Server soll zum Auslesen diverser Gruppen von anderen Domains genutzt werden.

Sprich es werden unterschiedliche Benutzer und Passwörter für die jeweiligen Domains genutzt. face-smile
Member: emeriks
emeriks Oct 20, 2015 updated at 12:38:57 (UTC)
Goto Top
War das "gelöst" jetzt ein Versehen?

Sprich es werden unterschiedliche Benutzer und Passwörter für die jeweiligen Domains genutzt.
Kann man machen, aber wenn sie alle in einem Forest sind, dann braucht man das nicht. Ein Task, der unter Local System auf einem Member-Computer läuft, kann standardmäßig alle AD Objekte des gesamten Forest lesen.
Member: makaroni
makaroni Oct 20, 2015 at 12:48:36 (UTC)
Goto Top
Yes, war ein versehen. Der Button ist zu nah am "kommentieren" dran ;)

Ja sind aber nicht alle in einem Forest. Sind mehrere Kunden.
Member: emeriks
emeriks Oct 20, 2015 at 12:57:57 (UTC)
Goto Top
Ja sind aber nicht alle in einem Forest. Sind mehrere Kunden.
Prima. Und warum schreibst Du das nicht gleich? Du hast bisher immer nur von "Subdomains" geschrieben ....

Also, hast Du jetzt Probleme mit Domänen in anderen Strukturen oder mit Subdomänen einer Struktur oder ne Kombination davon?
Existieren Vertrauensstellungen zwischen den Strukturen oder zwischen einzelnen Domänen davon?
Mitglied: 122990
122990 Oct 20, 2015 updated at 21:03:04 (UTC)
Goto Top
Zitat von @makaroni:
Ja sind aber nicht alle in einem Forest. Sind mehrere Kunden.
Na super, kommt wirklich früh die Info ..., wie @emeriks schon Fragt, gibt's Vertrauensstellungen ? Denn ohne lüppt das mit nur einem Satz Credentials nicht.
Member: makaroni
makaroni Oct 21, 2015 at 07:07:26 (UTC)
Goto Top
Sorry, ihr habt Recht, hätte ich erwähnen müssen. Vertrauenstellungen gibt es teils teils. Je nach Kunde.
Member: makaroni
makaroni Oct 21, 2015 at 07:20:19 (UTC)
Goto Top
Aber selbst mit Vertrauenstellung benötige ich anscheinend mehr als einen Satz Credentials. Die Anmeldeeigenschaften sind ja je Subdomain unterschiedlich.
Member: makaroni
makaroni Oct 28, 2015 at 08:31:18 (UTC)
Goto Top
Keine Idee mehr?
Member: emeriks
emeriks Oct 28, 2015 at 09:04:04 (UTC)
Goto Top
Nochmal: Nein!
Wenn da tatsächlich funktionale Vertrauensstellungen bestehen, dann kann jeder Benutzer und jeder Computer alle Objekte des AD lesen, auch in den vertrauten Domänen. Dafür brauche ich dann keine anderen Anmeldedaten.
Es kann aber auch sein, dass die Vertrauensstellungen nur eingeschränkt sind.
Member: makaroni
makaroni Oct 28, 2015 at 09:17:30 (UTC)
Goto Top
Nochmal? Sorry hatte ich zuvor noch nicht gesehen...

Beispiel folgende Domain:

Outgoing Trust:
Domain Name Trust Type Transitive
test.intern.com Child YES
test1. intern.com Child YES

Incoming Trust:
Domain Name Trust Type Transitive
test.intern.com Child YES
test1. intern.com Child YES

Diese Vertrauensstellung habe ich z.B. in einer Domain.
Das müsste dann doch eigentlich funktionieren?