Назад | Перейти на главную страницу

Сценарий Powershell для удаления вторичных SMTP-адресов почтовых контактов Exchange 2010

У меня есть несколько тысяч почтовых контактов Exchange 2010, которым в соответствии с политикой получателей по умолчанию ошибочно назначаются внутренние SMTP-адреса.

Я пытаюсь использовать следующую команду, чтобы удалить эти адреса (сохраняя основной SMTP) и отключить автоматическое обновление из политики получателя, чтобы адреса SMTP больше не воссоздались.

Get-MailContact -OrganizationalUnit "domain.local/OU" -Filter {EmailAddresses -like *@domain.local -and name -notlike "ExchangeUM*"} -ResultSize unlimited -IgnoreDefaultScope | foreach {
    $contact = $_
    $email = $contact.emailaddresses
    $email | foreach {
        if ($_.smtpaddress -like *@domain.local) {
            $address = $_.smtpaddress
            write-host "Removing address" $address "from Contact" $contact.name
            Set-Mailcontact -Identity $contact.identity -EmailAddresses @{Remove=$address}
            $contact | set-mailcontact -emailaddresspolicyenabled $false
        } 
    }
}

Однако я получаю следующую ошибку:

You must provide a value expression on the right-hand side of the '-like' operator.
At line:1 char:312
+ Get-MailContact -OrganizationalUnit "domain.local/testou" -Filter {EmailAddresses -like "*@domain.local" -and name -notlike "ExchangeUM*"} -ResultSize unlimited -IgnoreDefaultScope | foreach {$contact = $_; $
email = $contact.emailaddresses; $email | foreach {if ($_.smtpaddress -like <<<<  *@domain.local) {$address = $_.smt
paddress; write-host "Removing address" $address "from Contact" $contact.name; Set-Mailcontact -Identity $contact.ident
ity -EmailAddresses @{Remove=$address}; $contact }}
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpectedValueExpression

Любая помощь относительно того, как это исправить?

Вам нужны цитаты вокруг *@domain.local