Objekt-Attribute des Typs "Constructed"
Auf dieser Seite werden die so genannten Constructed Attributes im Active Directory Services Verzeichnis aufgezählt. Diese LDAP-Attribute sind in der eigentlichen Datenbank gar nicht vorhanden, sondern werden vom Verzeichnis-Server im Moment der LDAP-Anfrage für ein solches Attribut gebildet. Für derart konstruierte Attribute gelten wichtige Beschränkungen:
- Constructed Attributes können von einem LDAP-Client prinzipiell nicht geschrieben werden- sie werden schließlich nur für eine explizite Anfrage eines Verzeichnisdienst-Clients vom Server zusammengesetzt.
- Constructed Attributes können meist nicht in LDAP Filtern verwendet werden. Vorsicht: Unter Umständen ergibt die Suche mit einem derartigen Filter keinen Laufzeitfehler im Script, jedoch werden keine Ergebnisse zurückgeliefert! Ausnahmen von dieser Beschränkung sind die Attribute createTimeStamp, modifyTimeStamp, objectClasses und structuralObjectClass.
- Constructed Attributes können meist nicht in einer LDAP-Suchanfrage zurückgegeben werden, es sei denn, der Search-Scope ist auf "base" gesetzt, d.h. man greift nur auf ein einziges Objekt zu. Man kann jedoch nicht eine Suche nach allen Objekten in einem Container durchführen lassen und sich dabei ein Constructed Attribut dieser Objekte ausgeben lassen.Vorsicht: Unter Umständen ergibt eine "illegale" Suche nach Constructed Attributes keinen Laufzeitfehler im Script, jedoch werden keine Ergebnisse zurückgeliefert! Ausnahmen von dieser Beschränkung sind die Attribute createTimeStamp, modifyTimeStamp, objectClasses und structuralObjectClass.
Folgende Constructed Attributes sind in einem Windows 2003 AD enthalten, dessen Schema durch eine Exchange 2003-Installation erweitert wurde:
allowedAttributes | allowedAttributesEffective |
allowedChildClasses | allowedChildClassesEffective |
aNR | attributeTypes |
canonicalName | createTimeStamp |
dITContentRules | entryTTL |
extendedAttributeInfo | extendedClassInfo |
fromEntry | modifyTimeStamp |
ms-DS-Approx-Immed-Subordinates | ms-DS-Auxiliary-Classes |
ms-DS-KeyVersionNumber | ms-DS-NC-Repl-Cursors |
ms-DS-NC-Repl-Inbound-Neighbors | ms-DS-NC-Repl-Outbound-Neighbors |
ms-DS-Principal-Name | ms-DS-Quota-Effective |
ms-DS-Quota-Used | ms-DS-Repl-Attribute-Meta-Data |
ms-DS-Repl-Value-Meta-Data | ms-DS-Resultant-PSO |
ms-DS-Revealed-List | ms-DS-Revealed-List-BL |
ms-DS-SiteName | ms-DS-Top-Quota-Usage |
ms-DS-User-Account-Control-Computed | ms-DS-User-Password-Expiry-Time-Computed |
objectClasses | parentGUID |
possibleInferiors | possibleInferiors |
sDRightsEffective | structuralObjectClass |
subSchemaSubEntry | tokenGroups |
tokenGroupsGlobalAndUniversal | tokenGroupsNoGCAcceptable |
Andere Verzeichnisdienste wie z.B. Suns Directory Server oder Novells eDirectory kennen derartige Constructed Attributes nicht. In diesen Verzeichnisdiensten findet man jedoch (wie auch bei ADS) die Operational Attributes, die ebenfalls eine besonderen Umgang erfordern.
Ob ein Attribut konstruiert ist oder nicht, verraten die System-Flags in der Schema-Definition des Attributs. Es handelt sich dabei um ein Bit-Feld, das als systemFlags im Schema Eintrag des betreffenden Attributes gespeichert ist, bei Constructed Attributes ist hier das dritte Bit auf 1 gesetzt.
Man kann in ADS-Verzeichnissen durch folgendes Skript herausfinden, welches die Contructed Attributes sind.