Yasen_Peretz
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору До принятия решения о работе с МИИСом я делал так: через определенные промежутки времени запускался скрипт, который если достучался до глобального каталога другого леса, то удалял из определенного OU все контакты, читал в том лесе всех пользователей, у которых есть почта, и создавал у меня тут контакты по новой. Потом была создана новая адресная книга через Exchange System Manager, где в свойствах было указано Exchange Recipients и поставлена галочка на Contacts with external e-mail addresses Option Explicit On Error Resume Next Dim objConnection, objCommand, RS Dim DisplayName, Mail Dim Container Dim Contact Set objConnection = CreateObject("ADODB.Connection") objConnection.Provider = "ADsDSOObject" objConnection.Properties("User ID") = тут_аккаунт objConnection.Properties("Password") = тут_пароль objConnection.Properties("Encrypt Password") = True objConnection.Properties("ADSI Flag") = 1 objConnection.Open "Active Directory Provider" Set objCommand = CreateObject("ADODB.Command") Set objCommand.ActiveConnection = objConnection objCommand.CommandText = "SELECT displayname, mail FROM 'GC://АйПи_глобального_каталога/DC=блаблабла,DC=блаблабла' WHERE mail='*' AND objectClass='user' AND displayname <> 'SystemMailbox*' AND mail <> 'SystemMailbox*' ORDER BY displayname" Set RS = objCommand.Execute Dim sAddress Dim sAlias if NOT (RS.BOF AND RS.EOF) then 'Удалить все контакты и создать новые Dim sOU sOU="OU=GAL" Dim Root, DomainPath Set Root=GetObject("LDAP://RootDSE") DomainPath=Root.Get("DefaultNamingContext") Set Container = GetObject("LDAP://" & sOU & "," & DomainPath) 'Удаление всех контактов Dim strContact for each strContact in Container Container.Delete "contact", strContact.Name next 'Создание новых контактов RS.MoveFirst While Not RS.EOF DisplayName=RS("displayname") Mail=RS("mail") sAddress="SMTP:" & mail sAlias=Split(mail,"@") Set Contact = Container.Create("Contact", "CN=" & DisplayName) Contact.Put "sn", DisplayName Contact.Put "givenName", DisplayName Contact.Put "DisplayName", DisplayName Contact.Put "mail", mail Contact.targetAddress=sAddress Contact.PutEx 2,"proxyAddresses", Array(sAddress) Contact.Put "mailnickname", sAlias(0) & ".kamaz" Contact.SetInfo RS.MoveNext Wend end if Вот. про ложку к обеду это конечно верно, но лучше поздно чем никогда. =) |