Показать сообщение отдельно
Старый 20.09.2008, 18:53   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Eland Посмотреть сообщение
Задача: получить список всех пользователей домена вне зависимости от того, является ли пользователь членом (member of) чего-нибудь.
Есть пример на VBScript получения всех пользователей текущего домена с помощью ADODB-адаптера. Думаю, перевести его на Х++ не должно составить труда.
Код:
' какие атрибуты объектов будут возвращены запросом
const strAttributes     = "name,sAMAccountName,displayName,adspath"
const strAdsiFilter     = "(&(objectCategory=person)(objectClass=user))"

' построение запроса
strNamingContext        = GetObject("LDAP://rootDSE").get("defaultNamingContext")
strADOQuery             = "<LDAP://" & strNamingContext & ">;" & strAdsiFilter & ";" & strAttributes & ";subtree"

' настройка соединения
set oConn               = CreateObject("ADODB.Connection")
oConn.Provider          = "ADsDSOObject"
oConn.open                "ADs Provider"
set oCmd                = CreateObject("ADODB.Command")
oCmd.ActiveConnection   = oConn
oCmd.CommandText        = strADOQuery
oCmd.Properties("Page Size")        = 4000
oCmd.Properties("Timeout")          = 1000
oCmd.Properties("Cache Results")    = True

' выполнение запроса
set oRS                 = oCmd.execute
wscript.echo oRS.RecordCount & " objects found. Processing..."
while not oRS.EOF
    wscript.echo    oRS.Fields("name")              & ", " & _
                    oRS.Fields("sAMAccountName")    & ", " & _
                    oRS.Fields("displayName")       & ", " & _
                    oRS.Fields("adspath")
    oRS.MoveNext
wend
Важные моменты тут: strNamingContext, который будет указывать на текущий домен (типа DC=mydomain,DC=ru), соотв., если нужен другой домен, надо прописать что-то свое; strAttributes, где перечислены возвращаемые атрибуты, - если нужны другие, соотв., надо их указать.
Цитата:
Сообщение от Eland Посмотреть сообщение
Есть мысль поковыряться в Microsoft.Dynamics.IntegrationFramework.dll, копчиком чувствую есть там кой-чего полезного.
Нету там ничего, связанного с указанной задачей. Там живут такие классы, как RosourceMgr, AIFBase с наследниками-адаптерами (FileSystem, MessageQueue, WebService, ServiceGeneration) да классец Util с одним-единственным методом, возвращающим SID пользователя по указанному домену/логину.