The Magician

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
работа_с_внешними_контактами [2026/08/19 08:22] jpработа_с_внешними_контактами [2026/08/19 08:33] (current) jp
Line 3: Line 3:
 Внешние контакты в //Exchange// - это отдельные объекты //AD// без внутреннего логина. Данные контакты могут иметь адреса электронной почты, которые в целом в рамках //Exchange//-сервера будут восприниматься как ВНЕШНИЕ пользователи.  Внешние контакты в //Exchange// - это отдельные объекты //AD// без внутреннего логина. Данные контакты могут иметь адреса электронной почты, которые в целом в рамках //Exchange//-сервера будут восприниматься как ВНЕШНИЕ пользователи. 
  
-К примеру, ничего не мешает добавить эти учётные записи с типом "контакт" в группу рассылки. Если группа рассылки разрешает получение почты только от отправителей в рамках организации, то письма, полученные от контактов, добавленных в группу, приниматься сервером не будут. +К примеру, ничего не мешает добавить эти учётные записи с типом "контакт" в группу рассылки. Однако в случае, если группа рассылки разрешает получение почты только от отправителей в рамках организации, то письма, полученные от контактов, добавленных в группу, приниматься сервером не будут. Если нам необходимо изменить это поведение, то политику отправки группы рассылки необходимо пересмотреть.   
 + 
 +==== Автоматизация создания большого количества контактов из CSV ====
  
 Если нам требуется массово создать большое количество контактов в AD, то автоматизировать процесс не слишком сложно. Представим, что у нас есть CSV-файл, содержащий имя, должность и email контактов. Если нам требуется массово создать большое количество контактов в AD, то автоматизировать процесс не слишком сложно. Представим, что у нас есть CSV-файл, содержащий имя, должность и email контактов.
Line 13: Line 15:
 </code> </code>
  
 +Скрипт, который массово создаст контакты из CSV-файла, путь к которому указан в переменной //$CsvPath// в OU, DN которого содержится в //$OU//, будет выглядеть так:
 +
 +<code>
 +$CsvPath = "C:\Temp\contacts.csv"
 +$OU = "OU=TestContacts,OU=Contacts,DC=domain,DC=local"
 +
 +$Contacts = Import-Csv -Path $CsvPath -Delimiter "," -Encoding UTF8
 +
 +foreach ($Contact in $Contacts) {
 +
 +    if ([string]::IsNullOrWhiteSpace($Contact.name) -or
 +        [string]::IsNullOrWhiteSpace($Contact.email)) {
 +
 +        Write-Warning "Пропущена запись: отсутствует name или email."
 +        continue
 +    }
 +
 +    $DisplayName = "$($Contact.name.Trim()) (Внешний контакт)"
 +    $Email       = $Contact.email.Trim()
 +    $Title       = $Contact.title.Trim()
 +
 +    try {
 +
 +        Write-Host "Создание контакта: $DisplayName <$Email>"
 +
 +        New-MailContact `
 +            -Name $DisplayName `
 +            -DisplayName $DisplayName `
 +            -ExternalEmailAddress $Email `
 +            -OrganizationalUnit $OU `
 +            -ErrorAction Stop
 +
 +        if (-not [string]::IsNullOrWhiteSpace($Title)) {
 +            Set-Contact `
 +                -Identity $DisplayName `
 +                -Title $Title `
 +                -ErrorAction Stop
 +        }
 +
 +        Write-Host "Создан: $DisplayName"
 +    }
 +    catch {
 +        Write-Warning "Ошибка при создании '$DisplayName': $($_.Exception.Message)"
 +    }
 +}
 +</code>
 +
 +:!: Скрипт необходимо выполнять в //EMS// на сервере //Exchange//.
 +
 +Теперь мы можем массово добавить созданные контакты в какую-либо группу рассылки:
 +
 +<code>
 +Get-MailContact -OrganizationalUnit "OU=TestContacts,OU=Contacts,DC=domain,DC=local" |
 +    ForEach-Object {
 +        Add-DistributionGroupMember -Identity "TestDistrGroup" -Member $_.Identity
 +    }
 +</code>
 +
 +Возможно, мы не хотим, чтобы созданные контакты появлялись в глобальной адресной книге //Exchange//. Тогда необходимо массово установить для них соответствующий флаг //HiddenFromAddressListsEnabled//. Сделаем это следующим образом:
 +
 +<code>
 +Get-MailContact -OrganizationalUnit "OU=TestContacts,OU=Contacts,DC=domain,DC=local" |
 +    Set-MailContact -HiddenFromAddressListsEnabled $true
 +</code>
  
 +{{tag>Exchange Microsoft Mail PowerShell ActiveDirectory}}
работа_с_внешними_контактами.1787127755.txt.gz · Last modified: by jp