Основные возможности:
-
Поиск e-mail`ов пользователей, контактов и групп;
-
Вывод e-mail с пометкой принадлежности к групе или пользователю.
Пример запуска скрипта getmail.vbs и результаты
Запуск скрипта getmail.vbs лучше осуществлять из командной строки:
C:\tmp>cscript //Nologo getmail.vbs
-P- aevioenaevuaiena@exapmle.com
^-P- ndiaevuaienoevia@exapmle.com
-P- legevuaiesedevia@exapmle.com
-P- aleviaevuaien@exapmle.com
<G> al@exapmle.com
<G> aiueaevuaidiesed@exapmle.com
^<G> iuceaevuaidiesed@exapmle.com
<G> coendiacdi@exapmle.com
^<G> coendiacdi781@exapmle.com
<G> diaevuaiaevuaidi@exapmle.com
-P- diesedaevuaiudio@exapmle.com
^-P- diesedaevuaiudio@exapmle.com
C:\tmp>
Можно перенаправить вывод в файл: cscript //Nologo getmail.vbs > getmail.txt
Пример getmail.vbs файла:
(Скачать файл можно будет
здесь. ЗЫ Не тыкать! Жать правой кнопкой: сохранить ссылку как...)
Основные параметры:
-
domain - имя почтового домена,;
-
DC - DC домена;
-
GroupCN - CN групп;
-
GroupMark - Символ группы для пометки;
-
PersonMark - Символ пользователя/контакта для пометки.
-
pi - Показывать подробно (0 - только метка и e-mail, 1 - дополнительно номер записи и полное имя)
Текст getmail.vbs:
' Script getmail.vbs
' Get list of all domain user and group e-mails from domain
domain = "@example.com"
DC = "DC=EXAMPLE,DC=com"
GroupCN = "CN=Group,CN=Schema,CN=Configuration," & DC
GroupMark = "<G>"
PersonMark = "-P-"
' Show full info (0|1)
pi = 0
Const ADS_SCOPE_SUBTREE = 2
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 mailnickname, mail, name, objectCategory FROM 'LDAP://" & DC & _
"' WHERE objectCategory='group' OR (objectCategory='person' AND (objectClass='user' AND " _
"(homeMDB='*' OR msExchHomeServerName='*'))) ORDER BY mailnickname"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
i = 1
Do Until objRecordSet.EOF
mailnicknamestr = objRecordSet.Fields("mailnickname").Value
If mailnicknamestr <> "null" Then
mail = mailnicknamestr & domain
mail2 = objRecordSet.Fields("mail").Value
name = objRecordSet.Fields("name").Value
If objRecordSet.Fields("objectCategory").Value = GroupCN Then
objcat = GroupMark
Else
objcat = PersonMark
End If
ei = ""
If pi = 1 Then ei = i & vbTab & name & vbTab End If
Wscript.Echo ei & objcat & vbTab & mail
If mail <> mail2 Then
i = i+1
ei = ""
If pi = 1 Then ei = i & vbTab & name & vbTab End If
Wscript.Echo ei & "^" & objcat & vbTab & mail2
End If
i = i+1
End If
objRecordSet.MoveNext
Loop