* FUNCTION GetADUserInfo LPARAMETERS tcNTUserName, tlAdUserObject LOCAL lcNTUserName, lcUserDomain, lcUserName, loNetwork, ccADS_NAME_INITTYPE_GC, ccADS_NAME_TYPE_NT4 LOCAL ccADS_NAME_TYPE_1779, lcDN, loNameTrans ccADS_NAME_INITTYPE_GC = 3 ccADS_NAME_TYPE_NT4 = 3 ccADS_NAME_TYPE_1779 = 1 loNetwork = CreateObject("WScript.Network") lcUserName = loNetwork.UserName lcUserDomain = loNetwork.UserDomain lcNTUserName = UPPER(IIF( Empty(tcNTUserName) Or VarType(tcNTUserName) <> "C", ; lcUserName, ALLTRIM(tcNTUserName))) * Use NameTranslate object to get DN based on NT Login Name loNameTrans = CREATEOBJECT("NameTranslate") loNameTrans.Init( ccADS_NAME_INITTYPE_GC, "") TRY loNameTrans.Set(ccADS_NAME_TYPE_NT4, lcUserDomain + "\" + lcNTUserName) lcDN = loNameTrans.Get(ccADS_NAME_TYPE_1779) loAdUser = GETOBJECT("LDAP://" + lcDN) CATCH TO oExp WHEN oExp.Errorno = 1426 loAdUser = Null ENDTRY IF ISNULL(loAdUser) RETURN Null ENDIF IF tlAdUserObject RETURN loAdUser ENDIF loAdUserInfo = NEWOBJECT("Empty") ADDPROPERTY(loAdUserInfo, "cn", loAdUser.cn) ADDPROPERTY(loAdUserInfo, "department", loAdUser.department) ADDPROPERTY(loAdUserInfo, "displayname", loAdUser.displayName) ADDPROPERTY(loAdUserInfo, "fax", loAdUser.facsimileTelephoneNumber) ADDPROPERTY(loAdUserInfo, "emailaddr", LOWER(NVL(loAdUser.mail,""))) ADDPROPERTY(loAdUserInfo, "lastname", loAdUser.sn) ADDPROPERTY(loAdUserInfo, "FirstName", loAdUser.givenName) ADDPROPERTY(loAdUserInfo, "telephone", loAdUser.telephoneNumber) ADDPROPERTY(loAdUserInfo, "dn", loAdUser.distinguishedName) ADDPROPERTY(loAdUserInfo, "upn", loAdUser.userPrincipalName) ADDPROPERTY(loAdUserInfo, "title", loAdUser.title) RETURN loAdUserInfo