none
Как копировать контакты в AD windows 2003 RRS feed

  • Вопрос

  • В связи со сложившейся структурой организации, приходится часто заводить контакты в AD с e-mail адресами сторонних организаций. Контакты эти должны быть с определенными, часто одинаковыми атрибутами. Контакт в отличие от пользователя копировать нельзя, соответственно при заведении нового контакта приходится, каждый раз его заполнять=( Есть ли возможность через ADSI Edit или какам либо другим путем получить данную возможность?
    Ы
    25 августа 2010 г. 8:02

Ответы

  • В PS можно испльзовать командлет (в нём можно создать алиас):

    New-MailContact -Name <String> -ExternalEmailAddress <ProxyAddress> [-Alias <String>] [-Confirm [<SwitchParameter>]] [-DisplayName <String>] [-DomainController <Fqdn>] [-FirstName <String>] [-Initials <String>] [-LastName <String>] [-MacAttachmentFormat <BinHex | UuEncode | AppleSingle | AppleDouble>] [-MessageBodyFormat <Text | Html | TextAndHtml>] [-MessageFormat <Text | Mime>] [-OrganizationalUnit <OrganizationalUnitIdParameter>] [-PrimarySmtpAddress <SmtpAddress>] [-TemplateInstance <PSObject>] [-UsePreferMessageFormat <$true | $false>] [-UseRusServer <String>] [-WhatIf [<SwitchParameter>]]

    26 августа 2010 г. 14:02
  • Если продолжать тему PS и при этом обходится без дополнительных командлетов, можно поступить так:

     

    function create-contact
    # ---------------------------------------------------------------------------------------------------
    {
    Param (
    	$ou,
    	$EMail,
    	$strContactName,
    	$strFirst, 
    	$strLast,
    	$Description
     )
     $strMainDefault = "SMTP:$($EMail)"
     Write-Host "Welcome to creat contact!"
     Write-Host "First Name: $($strFirst)"
     Write-Host "Last Name: $($strLast)"
     Write-Host "E-mail: $($EMail)!"
     $strEmail = "not@needed.org"
     $strMailbox = "/o=tvoy/ou=First Administrative Group/cn=Recipients/cn="+ $strContactName
     $strNick = $strContactName
    
     $objContainer = [ADSI]"LDAP://localhost:389/ou=Contacts,dc=ex,dc=treet,dc=local"
     
     $objContact = $objContainer.Create("contact", "cn="+$strContactName)
     $objContact.Put("Mail", $strEmail)
     $objContact.Put("givenName", $strFirst)
     $objContact.Put("sn", $strLast)
     $objContact.Put("mailNickname", $strNick)
     $objContact.Put("targetAddress", $strMainDefault)
     $objContact.Put("legacyExchangeDN", $strMailbox)
     $objContact.SetInfo()
    }
    

     

    create-contact "Contacts" "dt@dt.com" "MrAcme1" "Willy" "Acme" "This is a Test"
    

     

    аттрибут "mailNickname" из строки "$objContact.Put("mailNickname", $strNick)" - это твой алиас

     

    Для рассмотрения всех атрибутов рекомендую воспользоваться утилитой ADSI Edit.

    Взять можно тут

    30 августа 2010 г. 4:14

Все ответы

  • Сделать батник с заполненными свойствами и далее менять только ФИО и адрес:

    http://technet.microsoft.com/ru-ru/library/cc771883%28WS.10%29.aspx
    25 августа 2010 г. 12:13
  • Спасибо работает, нашел как это сделать и на PS. Но, таким макаром не создается алиас контакта в exchange, придется все равно каждый раз заходить в оснастку и заводить почту.


    Ы
    25 августа 2010 г. 13:44
  • В PS можно испльзовать командлет (в нём можно создать алиас):

    New-MailContact -Name <String> -ExternalEmailAddress <ProxyAddress> [-Alias <String>] [-Confirm [<SwitchParameter>]] [-DisplayName <String>] [-DomainController <Fqdn>] [-FirstName <String>] [-Initials <String>] [-LastName <String>] [-MacAttachmentFormat <BinHex | UuEncode | AppleSingle | AppleDouble>] [-MessageBodyFormat <Text | Html | TextAndHtml>] [-MessageFormat <Text | Mime>] [-OrganizationalUnit <OrganizationalUnitIdParameter>] [-PrimarySmtpAddress <SmtpAddress>] [-TemplateInstance <PSObject>] [-UsePreferMessageFormat <$true | $false>] [-UseRusServer <String>] [-WhatIf [<SwitchParameter>]]

    26 августа 2010 г. 14:02
  • Если продолжать тему PS и при этом обходится без дополнительных командлетов, можно поступить так:

     

    function create-contact
    # ---------------------------------------------------------------------------------------------------
    {
    Param (
    	$ou,
    	$EMail,
    	$strContactName,
    	$strFirst, 
    	$strLast,
    	$Description
     )
     $strMainDefault = "SMTP:$($EMail)"
     Write-Host "Welcome to creat contact!"
     Write-Host "First Name: $($strFirst)"
     Write-Host "Last Name: $($strLast)"
     Write-Host "E-mail: $($EMail)!"
     $strEmail = "not@needed.org"
     $strMailbox = "/o=tvoy/ou=First Administrative Group/cn=Recipients/cn="+ $strContactName
     $strNick = $strContactName
    
     $objContainer = [ADSI]"LDAP://localhost:389/ou=Contacts,dc=ex,dc=treet,dc=local"
     
     $objContact = $objContainer.Create("contact", "cn="+$strContactName)
     $objContact.Put("Mail", $strEmail)
     $objContact.Put("givenName", $strFirst)
     $objContact.Put("sn", $strLast)
     $objContact.Put("mailNickname", $strNick)
     $objContact.Put("targetAddress", $strMainDefault)
     $objContact.Put("legacyExchangeDN", $strMailbox)
     $objContact.SetInfo()
    }
    

     

    create-contact "Contacts" "dt@dt.com" "MrAcme1" "Willy" "Acme" "This is a Test"
    

     

    аттрибут "mailNickname" из строки "$objContact.Put("mailNickname", $strNick)" - это твой алиас

     

    Для рассмотрения всех атрибутов рекомендую воспользоваться утилитой ADSI Edit.

    Взять можно тут

    30 августа 2010 г. 4:14
  • После  $objContact = $objContainer .Create("contact" , "cn=" + $strContactName )
    скорее всего придется пставить  $objContact .SetInfo() иначе последующее назначение и сохранение свойств может вызвать ошибку.


    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    30 августа 2010 г. 6:02
    Модератор