| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| работа_с_внешними_контактами [2026/08/19 08:22] – jp | работа_с_внешними_контактами [2026/08/19 08:33] (current) – jp |
|---|
| Внешние контакты в //Exchange// - это отдельные объекты //AD// без внутреннего логина. Данные контакты могут иметь адреса электронной почты, которые в целом в рамках //Exchange//-сервера будут восприниматься как ВНЕШНИЕ пользователи. | Внешние контакты в //Exchange// - это отдельные объекты //AD// без внутреннего логина. Данные контакты могут иметь адреса электронной почты, которые в целом в рамках //Exchange//-сервера будут восприниматься как ВНЕШНИЕ пользователи. |
| |
| К примеру, ничего не мешает добавить эти учётные записи с типом "контакт" в группу рассылки. Если группа рассылки разрешает получение почты только от отправителей в рамках организации, то письма, полученные от контактов, добавленных в группу, приниматься сервером не будут. | К примеру, ничего не мешает добавить эти учётные записи с типом "контакт" в группу рассылки. Однако в случае, если группа рассылки разрешает получение почты только от отправителей в рамках организации, то письма, полученные от контактов, добавленных в группу, приниматься сервером не будут. Если нам необходимо изменить это поведение, то политику отправки группы рассылки необходимо пересмотреть. |
| | |
| | ==== Автоматизация создания большого количества контактов из CSV ==== |
| |
| Если нам требуется массово создать большое количество контактов в AD, то автоматизировать процесс не слишком сложно. Представим, что у нас есть CSV-файл, содержащий имя, должность и email контактов. | Если нам требуется массово создать большое количество контактов в AD, то автоматизировать процесс не слишком сложно. Представим, что у нас есть CSV-файл, содержащий имя, должность и email контактов. |
| </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}} |