sestatus
скажет Вам, если SELinux будет включен, а также несколько других характеристик.
Я использовал Powershell, чтобы отключить обновление адреса электронной почты из политики получателя:
Get-MailContact -OrganizationalUnit "domain.local/OU" | set-mailcontact -emailaddresspolicyenabled $false
Затем я использовал ADModify.net, чтобы удалить вторичные SMTP-адреса, назначенные контактам. Это сработало как шарм.
Прежде всего, попытайтесь определить политику, которая могла быть причиной подделки этих адресов. Вы можете настроить его так, чтобы он применялся только к почтовым ящикам или контактам ...
... или создать новый только для контактов.
Чтобы очистить беспорядок, PowerShell есть для вас, если вам нужно сделать массовые изменения.
Была та же проблема (немного поздно), поэтому я взял ваш "сценарий" и обновил его. Вам необходимо отключить политику адресов электронной почты, которая будет применяться к контактам в Exchange, и это частично решит проблему.
1) Расширьте локальную версию Microsoft Exchange
2) Разверните конфигурацию организации
3) Выберите Hub Transport и перейдите на вкладку Политики адресов электронной почты.
4) Отредактируйте каждого, оставив Пользователи с внешними адресами электронной почты
без флажка и Контакты с внешними адресами электронной почты
.
Это частично решит проблему, поскольку политика по умолчанию не может быть отключена, поэтому я все равно добавил адреса электронной почты domain.local по умолчанию к новым контактам.
Итак, я написал сценарий, основанный на том, что предоставлен в вопрос (тот, о котором идет речь, имел некоторые ошибки, когда было назначено несколько адресов из одного домена, и это создавало много шума), который удалит все адреса электронной почты, которые не являются внешними, а также гарантирует, что старые контакты не получат политики повторно применен.
####
# Input variables
####
$domains = @("*@domain.com","*@domain.pl","*@evotec.pl", "*@domain.local")
$ou = "evotec.local"
####
# Removing internal domains from contacts
####
$domains | foreach {
$domain = $_;
write-host "Preparing for removal of addresses with domain name:" $domain
$Contacts = Get-MailContact -OrganizationalUnit $ou -Filter {
EmailAddresses -like $domain -and name -notlike "ExchangeUM*"
} -ResultSize unlimited -IgnoreDefaultScope
$Contacts | foreach {
$contact = $_;
$email = $contact.emailaddresses;
#write-host "1. " $contact
#write-host "2. " $contact.name
#write-host "3. " $email
#write-host "4. " $contact.identity
$email | foreach {
if ($_.smtpaddress -like $domain)
{
$address = $_.smtpaddress;
write-host "[*] Removing address" $address "from Contact" $contact.name;
Set-Mailcontact -Identity $contact.identity -EmailAddresses @{Remove=$address};
}
}
}
}
####
# Setting up email address policy to disabled for all contacts
####
write-host "Preparing all contacts for disabling email address policy"
$Contacts = Get-MailContact -OrganizationalUnit $ou -Filter {
EmailAddresses -like $domain -and name -notlike "ExchangeUM*"
} -ResultSize unlimited -IgnoreDefaultScope | Where {$_.EmailAddressPolicyEnabled -eq $true}
$Contacts | foreach {
$contact = $_;
write-host "[*] Setting up email address policy to disabled for" $contact.name
$contact | set-mailcontact -emailaddresspolicyenabled $false
}
Последний шаг - настроить его как планировщик заданий, поскольку новые контакты будут получать нередактируемую (по крайней мере, поддерживаемым способом) политику по умолчанию. Эта установка на сервере Exchange будет работать нормально. Обязательно запустите его с правильными разрешениями.
C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -command ". 'C: \ Program Files \ Microsoft \ Exchange Server \ V14 \ bin \ RemoteExchange.ps1'; Connect-ExchangeServer -auto; C: \ ExchangeScript \ RemoveLGBSEmailsFromContacts.ps1 "
Get-MailContact | Set-MailContact -EmailAddressPolicyEnabled: $ false
Это должно помочь ВСЕМ почтовым контактам!