Делаю выборку из AD

Windows Script Host (WSH), WMI, vbs скрипты и т.д. Создание и применение скриптов.

Модератор: Модераторы

Активный пользователь
Аватара пользователя
Сообщения: 793
Зарегистрирован: 17 мар 2004, 19:11
Откуда: Санкт-Петербург, Россия

Сообщение Remy » 12 апр 2005, 12:47

Код
GetUserInfo

Sub GetUserInfo
 GetListUsers objRecordset
 Do Until objRecordset.EOF
   If objRecordset("givenName") <> ""  and objRecordset("mail") <> "" then
   WriteLineToLogFile(objRecordset("Sn")&","&objRecordset("givenName")&","&objRecordset("mail"))
   End If
 objRecordset.MoveNext
 Loop
End Sub

'*********************************

Sub GetListUsers(objRecordset)
Dim objConnection, strSQL, oRootDSE

 Set objConnection = CreateObject("ADODB.Connection")
 objConnection.Open "Provider=ADsDSOObject;Encrypt Password=False;Integrated Security=SSPI;Mode=Read;Bind Flags=0;ADSI Flag=-2147483648"
 Set objRecordset = CreateObject("ADODB.Recordset")
 Set oRootDSE = GetObject("LDAP://RootDSE")
'Set oRootDSE = GetObject("LDAP://dc=xx-spb,dc=bla,dc=com")
 strSQL = "SELECT Sn, givenName, mail, userAccountControl "_
        &"FROM 'LDAP://" & oRootDSE.Get("defaultNamingContext")_
        & "' WHERE objectCategory='user' "_
        & "AND userAccountControl <> 514"
 Set objRecordset = objConnection.Execute(strSQL)
 Set objConnection = Nothing
End Sub
[/code]


вот собсна часть, формируем запрос, выбираем по определенным полям и пишем в файл.
хочу иметь доступ еще к некоторым полям из АД, таким как City например, и не могу найти ((
Активный пользователь
Сообщения: 106
Зарегистрирован: 21 май 2004, 09:26

Сообщение Defence » 12 апр 2005, 13:07

Вот что нашел.

PostalAddresses - Postal address as a BSTR array. This property is multi-valued to hold more than addresses of the user. The internal format of a PostalAddress should comply with CCITT F.401 as referenced in X.521-1993, which defines a PostalAddress as six elements of 30 bytes each, holding a street address, (optionally) Post Office Box, city or locality, state or province, Postal Code, and Country/Region.

Извини, в скрипте не тестил, нет сейчас времени. Попробуй поискать примеры.

Активный пользователь
Аватара пользователя
Сообщения: 793
Зарегистрирован: 17 мар 2004, 19:11
Откуда: Санкт-Петербург, Россия

Сообщение Remy » 12 апр 2005, 13:08

Цитата (Defence @ 12.04.2005 - 12:07)
Вот что нашел.

PostalAddresses - Postal address as a BSTR array. This property is multi-valued to hold more than addresses of the user. The internal format of a PostalAddress should comply with CCITT F.401 as referenced in X.521-1993, which defines a PostalAddress as six elements of 30 bytes each, holding a street address, (optionally) Post Office Box, city or locality, state or province, Postal Code, and Country/Region.

Извини, в скрипте не тестил, нет сейчас времени. Попробуй поискать примеры.
[/quote]

да читал, а вот как засунуть в скрипт это <_<
Активный пользователь
Аватара пользователя
Сообщения: 793
Зарегистрирован: 17 мар 2004, 19:11
Откуда: Санкт-Петербург, Россия

Сообщение Remy » 12 апр 2005, 15:51

подсказал товарисч, это поле называеца "l" (location)
все работает, но теперь немного другая трабла, покурю напишу )))

Активный пользователь
Аватара пользователя
Сообщения: 793
Зарегистрирован: 17 мар 2004, 19:11
Откуда: Санкт-Петербург, Россия

Сообщение Remy » 12 апр 2005, 16:42

все с тем же ЛДАП связанная, хочу зайти в доверительный АД и сделать выборку там:

меняю
Set oRootDSE = GetObject("LDAP://RootDSE")
на
Set oRootDSE = GetObject("LDAP://dc=xx-spb,dc=bla,dc=com")

скрипт ошибок не выдает, но и репорта тожа (((
как посмотреть его выполнение пошагово ну или еще чего, щас попробую
wscript.echo понатыкать, но это наверно очено коряво ))

Активный пользователь
Аватара пользователя
Сообщения: 793
Зарегистрирован: 17 мар 2004, 19:11
Откуда: Санкт-Петербург, Россия

Сообщение Remy » 12 апр 2005, 16:50

как я понял стопорица сразу после
Set oRootDSE = GetObject("LDAP://dc=xx-spb,dc=bla,dc=com")
Wscript.echo

тоесть перед выборкой, может я не правильно конекчусь, а именн с интегррированной учеткой?
а как задать параметры чтоб под другим именем?

хм...
Аватара пользователя
Сообщения: 611
Зарегистрирован: 07 апр 2004, 17:10
Откуда: ссср

Сообщение Stratofortress » 12 апр 2005, 17:15

Remy
кто вам сказал, что ошибок нет? ;))
в запросе-то кто менять всё будет?

Set oRootDSE = GetObject("LDAP://dc=xx-spb,dc=bla,dc=com")
strSQL = "SELECT Sn, givenName, mail, userAccountControl "_
&"FROM 'LDAP://dc=xx-spb,dc=bla,dc=com _
& "' WHERE objectCategory='user' "_
& "AND userAccountControl <> 514"
нет времени разбираться — наймите того, кто знает.

хм...
Аватара пользователя
Сообщения: 611
Зарегистрирован: 07 апр 2004, 17:10
Откуда: ссср

Сообщение Stratofortress » 12 апр 2005, 17:23

и вообще. в данном случае
Цитата
Set oRootDSE = GetObject("LDAP://dc=xx-spb,dc=bla,dc=com")
[/quote]
ни к чему. ;)

таким образом, имеем
Код
GetUserInfo

Sub GetUserInfo
GetListUsers objRecordset
Do Until objRecordset.EOF
  If objRecordset("givenName") <> ""  and objRecordset("mail") <> "" then
  WriteLineToLogFile(objRecordset("Sn")&","&objRecordset("givenName")&","&objRecordset("mail"))
  End If
objRecordset.MoveNext
Loop
End Sub

'*********************************

Sub GetListUsers(objRecordset)
Dim objConnection, strSQL, oRootDSE

Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;Encrypt Password=False;Integrated Security=SSPI;Mode=Read;Bind Flags=0;ADSI Flag=-2147483648"
Set objRecordset = CreateObject("ADODB.Recordset")

strSQL = "SELECT Sn, givenName, mail, userAccountControl "_
       &"FROM 'LDAP://dc=xx-spb,dc=bla,dc=com_
       & "' WHERE objectCategory='user' "_
       & "AND userAccountControl <> 514"
Set objRecordset = objConnection.Execute(strSQL)
Set objConnection = Nothing
End Sub
[/code]
нет времени разбираться — наймите того, кто знает.

Активный пользователь
Аватара пользователя
Сообщения: 793
Зарегистрирован: 17 мар 2004, 19:11
Откуда: Санкт-Петербург, Россия

Сообщение Remy » 13 апр 2005, 11:33

Stratofortress

почему же?

вот у меня код к моему АД:

Set oRootDSE = GetObject("LDAP://RootDSE")
strSQL = "SELECT Sn, givenName, mail, l, department, userAccountControl "_
&"FROM 'LDAP://" & oRootDSE.Get("defaultNamingContext")_

а вот к чужому

Set oRootDSE = GetObject("LDAP://dc=rc-spb,dc=renaissancecreation,dc=com")
strSQL = "SELECT Sn, givenName, mail, l, department, userAccountControl "_
&"FROM 'LDAP://" & oRootDSE.Get("defaultNamingContext")_

хм...
Аватара пользователя
Сообщения: 611
Зарегистрирован: 07 апр 2004, 17:10
Откуда: ссср

Сообщение Stratofortress » 13 апр 2005, 13:20

Remy
Цитата
а вот к чужому

strSQL = "SELECT Sn, givenName, mail, l, department, userAccountControl "_
&"FROM 'LDAP://dc=rc-spb,dc=renaissancecreation,dc=com_
[/quote]
нет времени разбираться — наймите того, кто знает.

След.

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1