Eigene AD-Attribute - Änderungen mit Windows Server 2012
Dieser Artikel gilt für: Server 2012, Server 2012 R2
In meinen Blogeinträgen [1], [2] und [3] habe ich die Möglichkeiten vorgestellt, wie man eigene Attribute im AD erstellen kann, sie versteckt bzw. nur für wenige User sichtbar macht. Diese Lösung funktionierte bis Server 2008R2 problemlos. Mit Server 2012 gab es ein paar kleinere Änderungen am Verhalten des ADs, wodurch die Lösung so nicht mehr ganz praktikabel erscheint. Im Folgenden werde ich kurz die wichtigsten Änderungen auflisten und erklären, wie man auf das neue Verhalten reagieren muss.
Die Ausgangssituation
In diesem Blogeintrag gehen wir davon aus, dass ein Attribut matrikelNummer im AD angelegt wurde. Das searchFlag wurde auf 128 gesetzt und somit vor dem normalen User versteckt. (siehe [1]).
Eine extra Spalte im Active-Directory Users and Computers
Bisher konnte man ein zusätzliches Attribut im AD über den ADSI-Eintrag extraColumns zur entsprechenden Container-View hinzufügen. Der Eintrag
matrikelNummer, Matrikelnr, 1,-1,0
fügt das Attribut matrikelNummer als Spalte mit der Überschrift Matrikelnr in das Active-Directory Users and Computers hinzu (siehe [1]). Die 3 Zahlen nach der Spaltenüberschrift haben folgende Bedeutung: default visibility, width, unused
Default visibility muss hier entweder 0 oder 1 sein. Bei 0 ist die Spalte standardmäßig unsichtbar, bei 1 wird sie standardmäßig angezeigt. Width ist die Breite der Spalte in Pixeln. Gibt man hier den Wert -1 an, ist die Spalte so breit wie ihre Überschrift. Unused ist ein Wert, der bisher (inkl. Server 2012R2) noch keine Verwendung hat und muss daher 0 sein.
Das Problem in Server 2012 (und 2012R2)
Bis hierhin funktioniert alles auch unter Server 2012 wie gewünscht. Ein Problem gibt es allerdings, wenn man eine Spalte der Ansicht hinzufügen / entfernen möchte. Hier ist die Liste der verfügbaren Spalten leer.
Hier passiert folgendes: Im Normalfall greift der Container bei allen geerbten Attributen nicht nur auf seine eigenen Attribute zu, sondern immer auch auf die Attribute des übergeordneten Containers. In diesem Fall sollte der Container Container-Display für das Attribut extraColumns sowohl auf seine eigenen Einträge, als auch auf die Einträge des Containers Default-Display zugreifen.
Dieses Verhalten hat sich mit Server 2012 geändert. Hier wird nur auf den übergeordneten Container zugegriffen, wenn das eigene Attribut keine Einträge besitzt.
Die Lösung
Auch wenn dies aussieht wie ein Bug, laut einer MSDN-Seite [4] ist dies Absicht. Um nun also die verfügbaren Spalten wiederzubekommen, muss man wie folgt vorgehen:
Im ADSI-Edit unter
CN=Configuration,DC=DOMAIN,DC=ENDING
im Ordner
CN=DisplaySpecifiers
und hier im Ordner CN=407 (für deutsche Systeme) bzw. CN=409 (für englische Systeme) nimmt man sich das Element CN=Default-Display. Hier gibt es alle möglichen zusätzlichen Spalten unter extraColumns. Diese Einträge müssen nun in das Element CN=container-Display (bzw. CN=organizationalUnit-Display) übertragen werden.
Hier wird jetzt auch die Funktion des Wertes Default visibility deutlich. Alle Spalten die mit dem Wert 0 hinzugefügt werden, sind über Add/Remove Columns verfügbar ohne direkt beim Öffnen angezeigt zu werden.
[1] https://www.escde.net/blog/attribute-im-ad-verstecken-und-eigene-attribute-erstellen
[2] https://www.escde.net/blog/ad-attribute-verstecken-teil-2-leserechte-fur-confidential-attributes
[3] https://www.escde.net/blog/eigene-ad-attribute-teil-2-enable-advanced-find
[4] http://msdn.microsoft.com/en-us/library/windows/desktop/ms677291(v=vs.85)
- ASP.NET 1
- Active Directory 41
- Administration Tools 1
- Allgemein 60
- Backup 4
- ChatBots 5
- Configuration Manager 3
- DNS 1
- Data Protection Manager 1
- Deployment 24
- Endpoint Protection 1
- Exchange Server 62
- Gruppenrichtlinien 4
- Hyper-V 18
- Intune 1
- Konferenz 1
- Künstliche Intelligenz 7
- Linux 3
- Microsoft Office 11
- Microsoft Teams 1
- Office 365 11
- Office Web App Server 1
- Powershell 21
- Remote Desktop Server 1
- Remote Server 1
- SQL Server 8
- Sharepoint Server 12
- Sicherheit 1
- System Center 10
- Training 1
- Verschlüsselung 2
- Virtual Machine Manager 1
- Visual Studio 1
- WSUS 7
- Windows 10 12
- Windows 8 9
- Windows Azure 4
- Windows Client 1
- Windows Server 24
- Windows Server 2012 7
- Windows Server 2012R2 15
- Windows Server 2016 7
- Windows Server 2019 2
- Windows Server 2022 1
- Zertifikate 4