На главную страницу
 
  Главная 
  Новости 
  Статьи  RSS
  Программное обеспечение 
  Форум 
  Опросы 
  Полезные ссылки 
MSExchange.ru ISADocs.ru WinSecurity.ru NetDocs.ru

Новости Microsoft Exchange Server
Статьи
Программное обеспечение
Форум
Опросы
Полезные ссылки

Поиск по сайту


Авторизация

Запомнить меня на этом компьютере
  Забыли свой пароль?
  Регистрация

Подписка

Изменение параметров

Статистика

Hits 2767992
32685
Hosts 1649940
1069
Visitors 230371
1347

9
Мониторинг активности принтеров

Главная / Форумы / Общие вопросы по Exchange 2003


SurfCop

Форум «Общие вопросы по Exchange 2003»

Версия для печати Версия для печати

Список форумов
Список тем
Поиск по форумам
Помощь
Войти
Регистрация


Тема: « Вопрос про почтовые Ящики, Как создать список всех почтовых ящиков c exhange» в форуме: Общие вопросы по Exchange 2003   Просмотров: 3415
 
Maximus
Гость
 
Создано: 16.11.2005 00:20:05
 
 
чем воспользоваться для создания списка почтовых ящиков все. может воспользоваться скриптом иль прогой подскажите ???
 
Наверх
Pavel Kozlov
Редактор
 
Всего сообщений: 1152
Дата регистрации: 07.11.2005
Создано: 16.11.2005 22:41:00
 
 
Доброго дня Maximus
Есть два варианта решения твоей задачи.
1. Если тебя интересует только основной ящик пользователя, то ты обращаешся к AD и запрашиваешь свойство пользователя - mail.
Например (результаты выводятся в текстовый файл, с сортировкой по отделу)

Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"

Const ForAppending = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
("C:\username.txt", ForAppending, True)

Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection

objCommand.Properties("Sort On") = "department"

objCommand.CommandText = _
";(&(objectClass=user)(department=*)(mail=*));department,name,mail;subtree"
Set objRecordSet = objCommand.Execute


While Not objRecordset.EOF
objTextFile.WriteLine(objRecordset.Fields("department") _
& VbTab &objRecordset.Fields("name") & VbTab & objRecordset.Fields("mail"))
objRecordset.MoveNext
Wend
objTextFile.Close
objConnection.Close

Это самый простой способ.
2. Если тебе требуется вывести список всех почтовых ящиков. Здесь требуется работа с таким свойством как - ProxyAddresses. Единственное что следует учитывать это то, что в результате на выходе будут ВСЕ адреса включая Х400 и требуется дополнительная филтрация.
например:
objConnection.Open "Active Directory Provider"

Const ForAppending = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
("C:\username.txt", ForAppending, True)

Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
"Select mail, cn, ProxyAddresses from 'GC://DC=ваш,DC=домен' " _
& "where objectClass='user' AND mail='*@*' ORDER BY cn"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Timeout") = 30
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.Properties("Cache Results") = False

Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
i = 0
Do Until objRecordSet.EOF
strName = objRecordSet.Fields("cn")
Set regEx = New RegExp
Set regEx1 = New RegExp
regEx.Pattern = "^SMTP:"
regEx1.Pattern = "^SMTP:SystemMailbox{"
regEx.IgnoreCase = True
regEx1.IgnoreCase = True
arrProxylist = objRecordSet.Fields("ProxyAddresses").Value
For each Addy in arrProxylist
retVal = regEx.Test(Addy)
If retVal Then
retVal1 = regEx1.Test(Addy)
If NOT retVal1 Then
i = i + 1
objTextFile.WriteLine (strName & vbTab & Addy)
End If
End If
Next
objRecordSet.MoveNext
Loop
objTextFile.Close
objConnection.Close

Скрипты не "причесаны" поэтому если есть идеи по их оптимизации с удовольствием приму.


--------------------
С уважением,
Павел Козлов
 
Профиль
E-Mail
Наверх
alternati
Гость
 
Создано: 26.12.2008 03:05:23
 
 
Может лучше использовать Query Based Distribution Group?
 
Наверх
mdanshin
Посетитель

 
Всего сообщений: 268
Дата регистрации: 21.11.2006
Создано: 26.12.2008 03:39:04
 
 
alternati пишет:
Может лучше использовать Query Based Distribution Group?


Это смотря для каких целей нужен список. Павел привел правильные скрипты. В замен первого варианта могу еще предложить вот такой способ:

http://mdanshin.blogspot.com/2007/10/ad.html

Ну и если вы работаете с GUI и хотите выбрать всех пользователей с п/я то почитайте вот эту статью. http://mdanshin.blogspot.com/2007/12/excange.html Там указан запрос для Custom Query

------
http://danshin.ms
 
Профиль
E-Mail
Наверх





Список форумов
Список тем
Поиск по форумам
Помощь
Войти
Регистрация




Работает на «Битрикс: Управление сайтом»
Работает на «Битрикс:
 Управление сайтом»
© MSExchange.ru, 2005-2010