AD Attribute verstehen: Schema, Attribute Editor und PowerShell im Zusammenspiel

Written By Johannes  |  Active Directory  |  0 Comments

ad attribute

Kurz gesagt: Ein AD Attribute ist ein einzelnes Datenfeld eines Active Directory Objekts, etwa cn, sAMAccountName oder whenChanged. Jedes Benutzer-, Computer- oder Gruppenobjekt besitzt Dutzende solcher Felder, die im AD-Schema festgelegt sind. Mit PowerShell liest und änderst du jedes AD Attribute direkt per Cmdlet, ganz ohne den grafischen Attribute Editor zu öffnen.

Warum siehst du in den Benutzereigenschaften im Snap-In nur eine Handvoll Felder, obwohl ein Active Directory Objekt intern hunderte Werte speichert? Die Antwort: Die normale Oberfläche blendet die meisten AD Attribute bewusst aus, weil sie für den Alltag selten relevant sind. Wer tiefer schauen will, braucht entweder den Attribute Editor oder PowerShell. Beides zeigt dir das komplette Bild eines Objekts, inklusive technischer Felder wie objectGUID oder whenChanged.

AD Attribute bilden das Grundgerüst jedes Verzeichnisobjekts

Active Directory speichert nicht einfach nur „Benutzer“ oder „Gruppen“, sondern Objekte mit fester Struktur. Diese Struktur legt das Schema fest: Es definiert, welche Objektklassen es gibt und welche Felder zu welcher Klasse gehören. Ein Benutzerobjekt erbt dabei Eigenschaften von mehreren Basisklassen, unter anderem top, person und organizationalPerson.

Deshalb trägt selbst ein frisch angelegtes Konto bereits Dutzende Werte in sich, auch wenn im Snap-In nur wenige davon sichtbar sind. Manche Felder sind Pflicht, andere optional und bleiben leer, bis sie bewusst gesetzt werden. Genau diese Struktur macht Active Directory so erweiterbar, allerdings auch unübersichtlich für Einsteiger.

Diese Werte begegnen dir im Alltag am häufigsten

In der Praxis reicht ein überschaubares Set an Feldern für die meisten Aufgaben aus. Dazu zählen unter anderem:

  • cn – der Common Name, meist identisch mit dem Anzeigenamen.
  • sAMAccountName – der Anmeldename für ältere Systeme und NTLM.
  • userPrincipalName – der moderne Anmeldename im E-Mail-Format.
  • distinguishedName – der vollständige Pfad des Objekts im Verzeichnis.
  • whenChanged und whenCreated – Zeitstempel für letzte Änderung und Erstellung.
  • pwdLastSet – Zeitpunkt der letzten Passwortänderung.
  • proxyAddresses – alle E-Mail-Aliase eines Postfachs.

Jedes dieser Felder ist ein eigenes AD Attribute mit eigenem Datentyp, eigener Syntax und eigenen Regeln für Mehrfachwerte. Deshalb kannst du cn problemlos manuell ändern, distinguishedName dagegen nicht direkt überschreiben, weil es sich automatisch aus Objektname und Container ergibt.

Abstrakte Darstellung einer Tabelle mit Active Directory Datenfeldern

Der Attribute Editor zeigt alle AD Attribute eines Objekts an

Im Snap-In Active Directory-Benutzer und -Computer blendet Microsoft den Attribute Editor standardmäßig aus, weil er für das Tagesgeschäft nicht nötig ist. Sobald du ihn aktivierst, siehst du eine Tabelle mit sämtlichen gesetzten und ungesetzten Feldern eines Objekts, sortiert nach Namen. Das ist praktisch, wenn du schnell einen einzelnen Wert kontrollieren willst, ohne gleich eine PowerShell-Konsole zu öffnen.

Fehlt der Attribute Editor, aktivierst du ihn in wenigen Klicks

Öffne dazu das Snap-In, klicke auf Ansicht und aktiviere Erweiterte Features. Erst danach taucht der Reiter Attribut-Editor in den Objekteigenschaften überhaupt auf. Fehlt er trotzdem, prüfe, ob die Remoteserver-Verwaltungstools vollständig installiert sind.

Illustration eines Admin-Tools zur Anzeige von Objekteigenschaften

PowerShell liest AD Attribute schneller aus als jede grafische Oberfläche

Für einzelne Objekte reicht der Attribute Editor aus. Sobald du aber mehrere Benutzer oder Computer vergleichen willst, ist PowerShell deutlich schneller und außerdem skriptbar. Das Cmdlet Get-ADUser liefert standardmäßig nur eine Teilmenge der Felder, alle übrigen AD Attribute musst du explizit anfordern.

Get-ADUser -Identity max.mustermann -Properties *

Dieser Befehl zeigt sämtliche gesetzten Felder des Benutzers an, inklusive technischer Werte wie objectGUID oder lastLogonTimestamp.

Get-ADUser -Filter * -Properties whenChanged, pwdLastSet | Select-Object Name, whenChanged, pwdLastSet

So bekommst du für alle Benutzer auf einen Blick, wann das Konto zuletzt geändert und wann das Passwort zuletzt gesetzt wurde.

So findest du Passwortänderung und Ablaufdatum

Der Wert in pwdLastSet liegt im FileTime-Format vor und ist deshalb für Menschen kaum lesbar. Wandle ihn um, oder nutze gleich das berechnete Feld msDS-UserPasswordExpiryTimeComputed, das Windows Server bereits als lesbares Datum liefert.

Get-ADUser -Identity max.mustermann -Properties "msDS-UserPasswordExpiryTimeComputed" |
    Select-Object @{N='PasswortLaeuftAb';E={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}

Der Befehl rechnet den internen Zeitstempel in ein normales Datum um und zeigt dir, wann das Passwort des Kontos abläuft.

Set-ADUser -Identity max.mustermann -Replace @{proxyAddresses='smtp:[email protected]'}

Mit -Replace überschreibst du den kompletten Wert eines Mehrfachfelds, hier proxyAddresses. Willst du nur einen Eintrag hinzufügen, nutze stattdessen -Add. Details zu weiteren nützlichen Schaltern findest du in der Übersicht der wichtigsten PowerShell-Parameter auf itnator.

proxyAddresses und andere AD Attribute brauchen besondere Vorsicht

proxyAddresses ist ein Mehrfachwert-Feld: Es kann mehrere E-Mail-Adressen gleichzeitig enthalten, eine davon markiert als primäre SMTP-Adresse in Großbuchstaben. Überschreibst du das Feld versehentlich komplett, verlieren Postfächer ihre Aliase oder, schlimmer, ihre primäre Adresse. Ähnlich heikel sind memberOf, member und managedBy, weil sie auf andere Objekte verweisen und sich nicht isoliert betrachten lassen.

Praxistipp: Exportiere vor jeder größeren Änderung an Mehrfachfeldern wie proxyAddresses oder member die aktuellen Werte per Export-Csv. So hast du im Fehlerfall sofort einen Rollback-Stand zur Hand.

Gerade bei wiederkehrenden Attribut-Änderungen lohnt sich ein fester Ablauf, inklusive Vieraugenprinzip und Dokumentation. Wie standardisierte Abläufe Qualität und Tempo steigern, gilt auch für Active Directory: Ein Skript, das immer gleich funktioniert, verhindert Tippfehler in produktiven Umgebungen. Eine vollständige Liste aller gängigen Felder inklusive Syntax findest du zudem in der ausführlichen AD Attribute Referenz auf itnator. Technische Details zu einzelnen Feldern liefert die offizielle Attribute-Referenz von Microsoft.

Häufige Fehler

  • Distinguished Name manuell ändern: Da sich distinguishedName automatisch aus Name und Container ergibt, bewirkt ein Direktwert nichts – nutze stattdessen Rename-ADObject oder Move-ADObject.
  • Mehrfachfelder mit -Replace überschreiben: Bei proxyAddresses oder member löscht -Replace alle bestehenden Werte, verwende -Add und -Remove für einzelne Einträge.
  • Attribute Editor für Massenänderungen nutzen: Die Oberfläche eignet sich nur für Einzelfälle, bei mehreren Objekten führt kein Weg an PowerShell vorbei.
  • Replikation nicht einplanen: Änderungen an Attributwerten brauchen Zeit, bis sie auf alle Domänencontroller repliziert sind – berücksichtige das bei Tests.
  • Zeitstempel falsch interpretieren: Felder wie pwdLastSet oder lastLogonTimestamp liegen im FileTime-Format vor und müssen vor der Auswertung umgerechnet werden.
{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>