farlow
что-нить типа такого:
Код:

Set objWSH = CreateObject("WScript.Shell")
UserName = objWSH.ExpandEnvironmentStrings("%USERNAME%")
Echo getGroupsTel(getUserOU(UserName), 50)
' Список групп с телефонами
' OrgUnitDN - имя группы в формате LDAP
' NumSpace - количество символов под имя группы
Function getGroupsTel (OrgUnitDN, NumSpace)
Const ADS_SCOPE_SUBTREE = 1
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = "SELECT Name, ManagedBy " & _
"FROM 'LDAP://" & OrgUnitDN & "' " & _
"WHERE objectCategory='group'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
nam = objRecordSet.Fields("Name").Value
nam = Mid(nam, 1, NumSpace)
man = objRecordSet.Fields("ManagedBy").Value
If man<>"" Then
ans = ans & vbCrLf & _
nam & Space(NumSpace-Len(nam)) & _
getUserTel(man)
End If
objRecordSet.MoveNext
Loop
getGroupsTel = ans
End Function
' Телефон группы
' userDN - имя пользователя в формате LDAP
Function getUserTel(userDN)
Set oUser = GetObject("LDAP://" & UserDN)
getUserTel = oUser.TelephoneNumber
End Function
' OU пользователя в формате LDAP
' userName - Имя пользователя (LoginName)
Function getUserOU (userName)
Const ADS_SCOPE_SUBTREE = 10
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = "SELECT distinguishedName " & _
"FROM 'LDAP://" & getDomainDN & "' " & _
"WHERE objectCategory='user' AND sAMAccountName='" & userName & "'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
ans = objRecordSet.Fields("distinguishedName").Value
objRecordSet.MoveNext
Loop
getUserOU = Mid(ans ,InStr(ans,",")+1)
End Function
' Домен текущего пользователя
Function getDomainDN
DCs = Split(objWSH.ExpandEnvironmentStrings("%USERDNSDOMAIN%"), ".")
For Each DC in DCs
DCString = DCString & "dc=" & DC & ","
Next
getDomainDN=Left(DCString, Len(DCString)-1)
End Function