Start Knowledge Base VBScript VBScript LDAP eDirectory

VBScript LDAP eDirectory

Aus der Kategorie: VBScript
Dienstag, 03. August 2010 (Zuletzt aktualisiert am Mittwoch, 25. August 2010)

VBScriptUm Attribute aus dem Novell eDirectory per VBScript auslesen zu können, ist ein bestimmtes Vorgehen erforderlich. Im Folgenden wird beschrieben wie man einen authentifizierten Bind durchführt und sowohl Singlevalue als auch Multivalue Attribute ausliest.

Einleitung

Unterschied GetObject("LDAP:") und oNamesp.OpenDSObject

Das Novell eDirectory gibt ohne Authentifizierung nicht alle Daten preis, daher reicht es nicht einen Bind wie folgt durchzuführen:

Set objUser = GetObject("LDAP://cn=username,ou=orga,dc=fabrikam,dc=com")
objUser.GetInfo

strMemberOf = objUser.GetEx("memberOf")(0)

Da dieser Bind ohne Authentifizierung durchgeführt wurde, handelt es sich um einen anonymen Bind. Das eDirectory kann aber so konfiguriert sein, dass die Gruppenzugehörigkeitsattribute (memberOf) nur bei erfolgreicher Authentifizierung gelesen werden dürfen.

Daher ist es empfehlenswert den Bind und das Auslesen des Attributs wie folgt durchzuführen:

Set oNamesp = GetObject("LDAP:")
Set treeobj = oNamesp.OpenDSObject("LDAP://cn=username,ou=orga,dc=fabrikam,dc=com", Username, _
Password, 32)

msgbox treeobj.GetEx("memberOf")(0)
Nach Oben

SingleValue Attribute

Einfach vorhandene Attribute können mit der Methode Get() ausgelesen werden:

msgbox treeobj.Get("mail")
Nach Oben

MultiValue Attribute

Mehrfach vorhandene Attribute können mit der Methode GetEx() ausgelesen werden:

msgbox treeobj.GetEx("memberOf")(0)

GetEx() gibt immer ein Array zurück, daher kann es auch für Singlevalue Attribute eingesetzt werden (s.o.).