Powershell (Get-ADUser -identity).someproperty zeigt kein Ergebnis an

Powershell (Get-ADUser -identity).someproperty zeigt kein Ergebnis an

Ich versuche, nach einzelnen Eigenschaften eines AD-Benutzers zu suchen, wenn ich

(Get-ADUser $userName).$targetProperty

Ich bekomme nichts, wenn ich renne

Get-ADUser $userName | select $targetProperty

Ich bekomme die Eigenschaft und ein Leerzeichen darunter. ABER wenn ich renne.

Get-ADUser $user -Properties * 

Ich erhalte die vollständige Liste und wenn ich mir $targetProperty ansehe, ist dort bereits ein Wert vorhanden. Meine Umgebung ist 1 DC, sie ist lokal und ich bin im Administratormodus.

Antwort1

Dies hängt von der Zieleigenschaft ab, die Sie abrufen möchten. Wenn es sich nicht um eine der Eigenschaften im Standardsatz handelt (die, die Sie erhalten, wenn Sie einfach ausführen Get-ADUser testuser), befindet sie sich nicht im Ergebnissatz, sodass Sie an keiner anderen Stelle in Ihrem Befehl darauf zugreifen können.

Hier sind die Standardeigenschaften.

DistinguishedName : CN=Test User,CN=Users,DC=domain,DC=local
Enabled           : True
GivenName         : Test
Name              : Test User
ObjectClass       : user
ObjectGUID        : 94916bd1-008e-409f-a1b3-eaXXXXXX266e
SamAccountName    : TestUser
SID               : S-1-5-21-23XXXXXX88-41XXXXX83-1941XXXX34-32584
Surname           : User
UserPrincipalName : [email protected]

Nehmen wir an, die gewünschte Eigenschaft ist Title. Ihr erster Befehl lautet also:

(Get-ADUser testuser).Title

Titleist nicht im Standardsatz der Eigenschaften enthalten, daher enthält der Teil in Klammern keine TitleEigenschaft und das Ergebnis des kombinierten Befehls ist nichts.

Zweiter Versuch:

Get-ADUser testuser | select Title

Damit erhalten Sie zwar das Wort „Titel“ als Spaltenüberschrift, dafür aber noch immer keinen Wert, weil der erste Teil des Befehls noch immer keine TitleEigenschaft in den Ergebnissen beinhaltet.

Dritter Versuch:

Get-ADUser testuser -Properties * 

Aha! Das kommt der Sache schon näher. Es umfasst die TitleImmobilie und eine ganze Reihe anderer Dinge, die Sie im Moment nicht interessieren.

Vierter Versuch:

(Get-ADUser testuser -Properties *).title

Das ist alles! Diese Kombination ruft alle Eigenschaften des Benutzers ab (einschließlich Title) und zeigt Ihnen dann nur die TitleEigenschaft an.

Optional:Sie können es etwas beschleunigen, indem Sie nicht nach den über 100 Eigenschaften fragen, die -Properties *Sie erhalten, sondern nur die Standardeigenschaften plus TitleFolgendes erhalten:

(Get-ADUser testuser -Properties Title).Title

Antwort2

Ich habe festgestellt, dass ich mit dem Folgenden die Informationen abrufen kann, aber warum funktionierte es mit meinen anderen Befehlen nicht?

(Get-ADUser $user -Properties *).$targetProperty

verwandte Informationen