Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/27: Рейтинг темы: голосов - 27, средняя оценка - 4.63
3 / 3 / 0
Регистрация: 09.04.2013
Сообщений: 121

Вытащить поле email из списка пользователей домена

08.06.2021, 18:02. Показов 5758. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят помогите решить такую задачку: имеется список.txt ФИО (displayname) людей в 1 строке 1 фио
нужно
вытащить из AD емайлы этих людей (они в профиле пользюков есть в email)
запуск скрипта нужен на локальной машине, а не на контроллере AD
чтобы получалось 2 столбца csv файла:
ФИО email
Фамилия Имя Отчество почтовыйадрес
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.06.2021, 18:02
Ответы с готовыми решениями:

Вывод списка пользователей домена в ListBox
есть код, который выводит пользователей с домена. Есть два вопроса Dim directoryEntry As DirectoryEntry = New...

Добавление пользователей домена в группу опытных пользователей
Как добавить пользователя домена в группу опытные пользователи? делал - в групповой политике "Конфигурация...

Применить выбранную в поле списка анимацию на выбранный в поле списка элемент
Проблема с написание скрипта, который позволял бы к выбранному в списке id элемента применить выбранную уже в другом списке анимацию...

32
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
18.06.2021, 13:00
Студворк — интернет-сервис помощи студентам
djin59, 13-25 строки в вашем = 9-15 строки в моём. Никакой разницы.
0
3 / 3 / 0
Регистрация: 09.04.2013
Сообщений: 121
19.06.2021, 07:36  [ТС]
FlasherX, так то оно так
но и запись
oQuery = "<LDAP://OU=куекуе,OU=куеуке,DC=mf,DC=укеук,DC=ru >;" & "(objectCategory=user)" & ";distinguishedName,name,mail,displaynam e,description;onelevel"

тащит всё что нужно ну можно убрать : distinguishedName ,name и description
просто как сравнить текущее значение displayname с элементами массива где все строки из файла с фио=ну т.е. тот же displayname (только выборочный кто нужен )
и если displayname = i - тому элементу то записать лог с mail этого i-того...
опять таки если бы с файлом траблы были то в массив бы не закидывались значения.... я так предполагаю

вообщем может кто еще поможет ребятки.....
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
19.06.2021, 15:03
Цитата Сообщение от djin59 Посмотреть сообщение
тащит всё что нужно
Ну так если выдаёт EOF, то ничего не тащит.
Цитата Сообщение от djin59 Посмотреть сообщение
просто как сравнить
В моём коде всё реализовано.
0
3 / 3 / 0
Регистрация: 09.04.2013
Сообщений: 121
19.06.2021, 18:52  [ТС]
ну смотрите вы говорите не тащит тогда как я получаю лог с фио и майлами ВСЕХ пользюков? вместо нужных мне из списка
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
20.06.2021, 04:50
Так искать ошибку нужно в Const Query, а не в oQuery.
Нашёл пропажу:Const Query = "<LDAP://OU=куекуе,OU=куеуке,DC=mf,DC=укеук,DC=ru >;(objectCategory=user);distinguishedName,name ,mail,displayname,description;onelevel"
0
3 / 3 / 0
Регистрация: 09.04.2013
Сообщений: 121
20.06.2021, 08:04  [ТС]
FlasherX, эту опечатку я сразу же исправил в сааамом начале копипаста Вашего скрипта
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Option Explicit
Const iFile = "C:\file.txt", logfile = "C:\Log.txt"
Const Query = "<LDAP://OU=вкеку,OU=укеуке,DC=куеук,DC=куеук,DC=ru>;(objectCategory=user);distinguishedName,name,mail,displayname,description"
'————————————————————————————————————————————————————
Dim oFSO, oCon, oCom, oRec, oLog, Text, disname, post
Set oFSO = CreateObject("Scripting.FileSystemObject")
If Not oFSO.FileExists(iFile) Then _
MsgBox "Файл " & iFile & " не найден!", 4144: WSH.Quit
Set oCon = CreateObject("ADODB.Connection")
Set oCom = CreateObject("ADODB.Command")
oCon.Open "Provider=ADsDSOObject;"
oCom.ActiveConnection = oCon
oCom.Properties("Page Size") = 10000
oCom.CommandText = Query
Set oRec = oCom.Execute
Set oLog = oFSO.OpenTextFile(logfile, 2)
 MsgBox oRec.BOF & " " & " " & oRec.EOF & " " & oRec.Fields.Count: WSH.Quit
Text = vbLf & oFSO.OpenTextFile(iFile).ReadAll & vbCr
Do: disname = oRec("displayname"): post = oRec("mail")
   If post > 0 And InStr(1, Text, vbLf & disname & vbCr, 1) Then _
   oLog.WriteLine disname & " " & post: oRec.MoveNext
Loop Until oRec.EOF
 
oLog.Close: oRec.Close: oCon.Close
Set ORec = Nothing: Set oCom = Nothing
Set oCon = Nothing: Set oFSO = Nothing

выскакивает окно сейчас "Ложь Ложь 5" странно но возможно связано с oRec.BOF , хотя сменив на EOF ничего не поменялось...
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
20.06.2021, 08:59
Цитата Сообщение от djin59 Посмотреть сообщение
эту опечатку я сразу же исправил в сааамом начале копипаста Вашего скрипта
выскакивает окно сейчас "Ложь Ложь 5"
Если бы исправили, то Ложь дважды не выскочила бы. А теперь уже надо проверять без проверочной строки, как в исходнике.
Цитата Сообщение от djin59 Посмотреть сообщение
хотя сменив на EOF
Где сменив? В добавленной строке? См. выше.
0
3 / 3 / 0
Регистрация: 09.04.2013
Сообщений: 121
21.06.2021, 07:04  [ТС]
FlasherX,
в том и суть что исправил!!!
ваш msgbox заREMил вообще (только для инфы Вам разремливал) , менял Loop Until oRec.EOF или BOF тут
сейчас просто процесс- wscript.exe вижу, что висит, но лог не заполняется и ошибки не вылетают...
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
21.06.2021, 12:58
djin59, так "исправил", что результаты разные?
Цитата Сообщение от djin59 Посмотреть сообщение
менял Loop Until oRec.EOF или BOF тут
Менять на BOF глупо. Цель цикла - достигнуть конца, а не начала.
Цитата Сообщение от djin59 Посмотреть сообщение
wscript.exe вижу, что висит
Сколько висит? По достижению EOF скрипт должен завершиться.
0
3 / 3 / 0
Регистрация: 09.04.2013
Сообщений: 121
22.06.2021, 13:47  [ТС]
больше 10 минут висел.... пуст лог
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
23.06.2021, 01:30
Лучший ответ Сообщение было отмечено djin59 как решение

Решение

Понял свой косяк:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Option Explicit
Const iFile = "C:\file.txt", logfile = "C:\Log.txt"
Const Query = "<LDAP://OU=вкеку,OU=укеуке,DC=куеук,DC=куеук,DC=ru>;(objectCategory=user);distinguishedName,name,mail,displayname,description"
'————————————————————————————————————————————————————
Dim oFSO, oCon, oCom, oRec, oLog, Text, disname, post
Set oFSO = CreateObject("Scripting.FileSystemObject")
If Not oFSO.FileExists(iFile) Then _
MsgBox "Файл " & iFile & " не найден!", 4144: WSH.Quit
Set oCon = CreateObject("ADODB.Connection")
Set oCom = CreateObject("ADODB.Command")
oCon.Open "Provider=ADsDSOObject;"
oCom.ActiveConnection = oCon
oCom.Properties("Page Size") = 10000
oCom.CommandText = Query
Set oRec = oCom.Execute
Set oLog = oFSO.OpenTextFile(logfile, 2)
Text = vbLf & oFSO.OpenTextFile(iFile).ReadAll & vbCr
Do: disname = oRec("displayname"): post = oRec("mail")
   If post > 0 And InStr(1, Text, vbLf & disname & vbCr, 1) Then _
   oLog.WriteLine disname & " " & post
   oRec.MoveNext
Loop Until oRec.EOF
 
oLog.Close: oRec.Close: oCon.Close
Set ORec = Nothing: Set oCom = Nothing
Set oCon = Nothing: Set oFSO = Nothing
1
3 / 3 / 0
Регистрация: 09.04.2013
Сообщений: 121
23.06.2021, 10:35  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Option Explicit
Const iFile = "C:\file.txt", logfile = "C:\Log.txt"
Const Query = "<LDAP://OU=вкеку,OU=укеуке,DC=куеук,DC=куеук,DC=ru>;(objectCategory=user);distinguishedName,name,mail,displayname,description"
'————————————————————————————————————————————————————
Dim oFSO, oCon, oCom, oRec, oLog, Text, disname, post
Set oFSO = CreateObject("Scripting.FileSystemObject")
If Not oFSO.FileExists(iFile) Then _
MsgBox "Файл " & iFile & " не найден!", 4144: WSH.Quit
Set oCon = CreateObject("ADODB.Connection")
Set oCom = CreateObject("ADODB.Command")
oCon.Open "Provider=ADsDSOObject;"
oCom.ActiveConnection = oCon
oCom.Properties("Page Size") = 10000
oCom.CommandText = Query
Set oRec = oCom.Execute
Set oLog = oFSO.OpenTextFile(logfile, 2)
Text = vbLf & oFSO.OpenTextFile(iFile).ReadAll & vbCr
Do: disname = oRec("displayname"): post = oRec("mail")
   If post > "" And InStr(1, Text, vbLf & disname & vbCr, 1) Then _
   oLog.WriteLine disname & " " & post
   oRec.MoveNext
Loop Until oRec.EOF
 
oLog.Close: oRec.Close: oCon.Close
Set ORec = Nothing: Set oCom = Nothing
Set oCon = Nothing: Set oFSO = Nothing
post > "" ВОТ ТАК ЗАРАБОТАЛО!!СПАСИБО!
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
23.06.2021, 14:58
Вообще логично. Зачем было с нулём сравнивать строчный адрес? Только If post <> "" ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.06.2021, 14:58

Вытащить комп из домена
Доброго времени суток, существует такая проблема: есть доменая сеть к которой подключены компьютеры компании, допустим домен зовут Domain1,...

Как вытащить контакты клиентов с email?
У нас пока не ведется CRM и контакты клиентов просто в почте (firma...@mail.ru) Как в автоматическом режиме вытащить контакты клиентов с...

Отправка email из php на сервере, с адреса домена который делегирован на яндекс
Делегировал домен на яндекс, создал почту на яндексе с данного домена. Письма отправляются и получают одобрения самообороной яндекс. Вопрос...

Аутентификация пользователей домена...
Как сделать аутентификацию доменных пользователей на интранет-сайте? Как, например, сделано в веб-интерфейсе Exchange... Там, если...

Аутентификация пользователей домена NT...
Люди, помогите, может сталкивался кто с необходимостью аутентифицировать пользователей в домене? Я использую код взятый с microsoft, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru