Neben eineAm klassischen ADSI-Skript gibt es eine relativ einfache Möglichkeit, Informationen aus dem Active Directory auszulesen. Hierzu lässt sich das COM-Objekt "ADSystemInfo" verwenden. Es gewährt einen schnellen Zugriff auf einige oft benötigte Daten aus dem AD. Die Dokumentation des Objekts findet sich im MSDN (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adsi/adsi/iadsadsysteminfo.asp).
Hier ein kleines Beispielskript, das die Verwendung illustriert:
Set objADSysInf = CreateObject("ADSystemInfo") WScript.Echo objADSysInf.UserName WScript.Echo objADSysInf.ComputerName WScript.Echo objADSysInf.DomainDNSName WScript.Echo objADSysInf.DomainShortName WScript.Echo objADSysInf.SiteName WScript.Echo objADSysInf.PDCRoleOwner WScript.Echo objADSysInf.IsNativeMode strSrv = objADSysInf.GetAnyDCName WScript.Echo strSrv WScript.Echo objADSysInf.GetDCSiteName(strSrv) WScript.Echo Join(objADSysInf.GetTrees, "; ")
Ein interessanter Punkt dabei ist, dass die Namens-Attribute hier die AD-Werte ausgeben, d.h. aus dem Usernamen lässt sich z.B. sehr einfach die OU des Benutzers auslesen. Oder um es mit Norbert Fehlauers Worten zu sagen:
Set objADSysInf = CreateObject("ADSystemInfo") Set objUser = GetObject("LDAP://" & objADSysInf.UserName) Set objOU = GetObject(objUser.parent) WScript.Echo objOU.distinguishedName
http://faq-o-matic.net/?p=627