PowerShell- ADuser - Domaincontroller schlussfolgern
Hi,
hat jemand ne Idee, wie man im PowerShell von einem ADUser-Objekt den Domaincontroller bekommt, über welchen dieses abgefragt oder erstellt wurde?
Also, z.B. mit
bekomme ich ein Objekt vom Typ Microsoft.ActiveDirectory.Management.ADUser
Für spätere Operationen mit diesem Objekt brauche ich den Domaincontroller.
liefert mir keine Eigenschaft, über welche ich auf den verwendeten DC schlussfolgern könnte.
E.
hat jemand ne Idee, wie man im PowerShell von einem ADUser-Objekt den Domaincontroller bekommt, über welchen dieses abgefragt oder erstellt wurde?
Also, z.B. mit
$User = Get-ADuser "Peter Müller"
Für spätere Operationen mit diesem Objekt brauche ich den Domaincontroller.
$User | FL *
E.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 460112
Url: https://administrator.de/forum/powershell-aduser-domaincontroller-schlussfolgern-460112.html
Ausgedruckt am: 31.03.2025 um 14:03 Uhr
18 Kommentare
Neuester Kommentar
Moin,
mEn hast du da keine Chance. der DC ist für das User Objekt vollkommen irrelevant. Die DCs einer Domain bekommst du mit Get-AdDomain oder Get-AdDomainController - falls dir das was hilft.
lg,
Slainte
/EDIT:
Das zeigt dir alle EIgenschaften die PS vom User Objekt kennt.
mEn hast du da keine Chance. der DC ist für das User Objekt vollkommen irrelevant. Die DCs einer Domain bekommst du mit Get-AdDomain oder Get-AdDomainController - falls dir das was hilft.
lg,
Slainte
/EDIT:
liefert mir keine Eigenschaft, über welche ich auf den verwendeten DC schlussfolgern könnte.
Versuchs mal mitGet-AdUser -Properties * | gm

Get-ADDomainController -Discover -NextClosestSite | select -First 1

Zitat von @emeriks:
Doch, Get-ADUser benutzt die selbe Methode zum ermitteln des DCs welchen er abfragt, s. Doku zu Get-ADUserZitat von @139920:
Get-ADDomainController -Discover | select -First 1
Das nütz mir doch nichts. Siehe meine Antwort zu @SlainteMhathGet-ADDomainController -Discover | select -First 1
https://activedirectoryfaq.com/2016/05/powershell-finding-the-next-close ...

Nur mit dem Objekt von Get-AdUser gar nicht! Das beinhaltet keinerlei Info von welchem DC die Daten abgefragt wurden. Wenn du also selbst die Abfrage von Get-Aduser nicht beeinflussen bzw. anderweitig die Abfrage selbst in die Hand nehmen kannst hast du Pech.
Ja, das wird er wohl gemeint haben. Er kann nicht beeinflussen, von wo die vorherigen Operationen durchgeführt wurden, will aber darauf aufbauend weiterarbeiten.
Also bei Exchange-Objekten kannst du mittelst Get-AdPermission -owner -identity <Username> ermitteln, welcher DC der Eigentümer ist. Da ich zuhause keine AD-Umgebung habe, kann ich nicht prüfen, ob das mit Get-ACL auch funktioniert. Ich weiß aber, dass der dort irgendein Eigentümer steht. Aber vielleicht hilft dir das ja schon etwas.
Viele Grüße
Toni
Also bei Exchange-Objekten kannst du mittelst Get-AdPermission -owner -identity <Username> ermitteln, welcher DC der Eigentümer ist. Da ich zuhause keine AD-Umgebung habe, kann ich nicht prüfen, ob das mit Get-ACL auch funktioniert. Ich weiß aber, dass der dort irgendein Eigentümer steht. Aber vielleicht hilft dir das ja schon etwas.
Viele Grüße
Toni
Ich habe jetzt selbst mal bisschen rumgeschaut. Get-ACL hilft hier tatsächlich nicht weiter. Spontan fällt nur die Möglichkeit ein, alle DCs nach dem User zu durchsuchen und einen passenden zu ermitteln. Sollte es sich um eine Änderung haneln, kann man zusätzlich das WhenChanged-Attribut vergleichen und dort den jüngsten Wert ermiteln.
Für diese Prozedur könntes du ein passendes CMdLet schreiben.
Eine andere Möglichkeit fällt mir da nun nicht mehr ein.
Für diese Prozedur könntes du ein passendes CMdLet schreiben.
Eine andere Möglichkeit fällt mir da nun nicht mehr ein.
Also bei Exchange-Objekten kannst du mittelst Get-AdPermission -owner -identity <Username> ermitteln, welcher DC der Eigentümer ist. Da ich zuhause keine AD-Umgebung habe, kann ich nicht prüfen, ob das mit Get-ACL auch funktioniert. Ich weiß aber, dass der dort irgendein Eigentümer steht. Aber vielleicht hilft dir das ja schon etwas.
(vielleicht aber auch einfach nur ein Textfile)
Das Objekt an sich natürlich nicht aber einen eindeutigen Identifizierer, bei einem User wäre da sdie SIDEin Textfile? Mit einem Objekt? Wie soll das gehen?
Nein, das meine ich nicht.
Nein, das meine ich nicht.
Es gibt Lösungen, tauchen wir mal etwas tiefer ein:
Auch wenn uns das AD die Informationen so nicht zur Verfügung stellt weil es das so nicht speichert kommen wir an unser gewünschte Ziel. Alle DCs sind in einer Multimasterumgebung im AD und tauschen sich über USNs aus um die Replikation einzuleiten. Ein User im AD ist letztlich ein Objekt mit bestimmen Eigenschaften. Wenn sich bei einem User auch viel ändern kann, die 'objectClass' wird es nicht tun. Wenn wir das jetzt verknüpfen wissen wir, wer die ObjectClass definiert muss das Objekt angelegt haben. Wenn du in die Metadaten deiner Replikation nach deinem User schaust wirst du den DC finden der den User erstellt hat. Falls der DC nicht mehr existiert (wovon ich aber nach deiner Beschreibung nicht ausgehe) findest du natürlich nur noch die GUID.
repadmin /showobjmeta 'DC-Name' 'User-DN'
et voila
Zitat von @emeriks:
Ich rede nicht vom AD-Objekt sondern vom PowerShell-Objekt.
Zitat von @LeeX01:
Das Objekt an sich natürlich nicht aber einen eindeutigen Identifizierer, bei einem User wäre da sdie SID
Denkfehler.Das Objekt an sich natürlich nicht aber einen eindeutigen Identifizierer, bei einem User wäre da sdie SID
Ich rede nicht vom AD-Objekt sondern vom PowerShell-Objekt.
Wie du schon geschrieben hast bekommst du durch die Abfrage ein Objekt vom Typ Microsoft.ActiveDirectory.Management.ADUser, also ein AD Objekt. Dieses AD Objekt (in der Powershell) hat das Attribut (member) objectSid.