Powershell脚本删除Exchange 2010邮件联系人的辅助SMTP地址

我有几千个Exchange 2010邮件联系人通过默认收件人策略错误地分配了内部SMTP地址。

我试图使用以下命令删除这些地址(保留主SMTP)并禁用从收件人策略的自动更新,以便SMTP地址不会再次被重新创build。

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} }} 

虽然我收到以下错误:

您必须在“类似”运算符的右侧提供值expression式。 在行: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; 写主机“删除地址”$地址“从联系”$ contact.name; Set-Mailcontact -Identity $ contact.ident ity -EmailAddresses @ {Remove = $ address}; $ contact}} + CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException + FullyQualifiedErrorId:ExpectedValueExpression

任何帮助,如何解决这个问题?

你需要引号*@domain.local