alecsandrb
Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору ' определение текущего UserName ' Этот вариант проходит для Windows 2000/XP и выше Set WshShell = CreateObject("Wscript.Shell") UserName = WshShell.ExpandEnvironmentStrings("%username%") Set objConnection = CreateObject("ADODB.Connection") objConnection.provider = "ADsDSOObject" objConnection.Open ("Active Directory Provider") ' Запрос информации по учетной записи пользователя CommandText = "Select cn, name, distinguishedName, canonicalName, sAMAccountName" CommandText = CommandText + " from 'LDAP://DC=dom1,DC=dom2'" CommandText = CommandText + " where sAMAccountName='" + UserName + "'" Set objRecordset = CreateObject("ADODB.Recordset") objRecordset.Open CommandText, objConnection If Not objRecordset.EOF Then ' Если запись для этого пользователя найдена то ' Процедура обработки distinguishedName или canonicalName End If В последнем IF--END IF размещается процедура формирования пути исходя из distinguishedName или canonicalName. 1. distinguishedName выглядит следующим образом "CN=Ivanov Petr,OU=Managers,OU=Firm,DC=dom1,DC=dom2" и путь вычисляется таким образом dn = objRecordset.fields("distinguishedName").Value myArray = Split(dn, ",") Path = "" For Each rec In myArray If Left(rec, 3) = "OU=" Then Path = Mid(rec, 4) + "\" + Path End If Next получается путь в виде "Firm\Managers\" 2. canonicalName выглядит следующим образом "dom1.dom2/Firm/Managers/Ivanov Petr" как видишь, здесь вообще достаточно заменить "/" на "\" и вырезать имя домена, подставив на его место твои " \\domain\shared dir" |