У меня есть несколько тысяч почтовых контактов 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