本主题介绍如何使用 Exchange 命令行管理程序来删除收件人别名中的空格。在 Microsoft Exchange Server 2003 中,可以创建别名中包含空格的收件人。但是,Exchange Server 2007 不允许收件人别名中包含空格。
在尝试使用 Exchange 2007 管理工具管理别名中包含空格的收件人时,将遇到下列问题:
  • 在尝试使用 Exchange 管理控制台查看别名中包含空格的收件人的属性时,将出现以下错误消息:
    <收件人名称> 的属性包含无效数据。如果单击“确定”,将使用默认值,如果在单击属性页上的“应用”或“确定”之前未更改默认值,将保存默认值。如果单击“取消”,对象将以只读形式显示,并将保留损坏的值。下列值包含无效数据:别名。
  • 在 Exchange 命令行管理程序中使用 Get- cmdlet 访问别名中包含空格的收件人时,将出现以下警告:
    警告:对象 <收件人的可分辨名称> 已损坏并且处于不一致状态。遇到下列验证错误:
    警告:<收件人的别名> 不是有效的别名。
  • 在 Exchange 命令行管理程序中尝试使用 Set- cmdlet 更新别名中包含空格的收件人的属性时,将出现以下错误消息:
    Set-<收件人类型>:<收件人的别名> 不是有效的别名。
  • 无法将别名中包含空格的邮箱移动到 Exchange 2007 服务器。
如果您的混合模式环境同时包含 Exchange 2003 和 Exchange 2007 服务器,应删除收件人别名中的空格。
若要执行此步骤,必须为您使用的帐户委派以下角色:
  • Exchange 收件人管理员角色
有关管理 Exchange 2007 所需的权限、角色委派以及权利的详细信息,请参阅 权限注意事项
  • 运行以下命令可以删除邮箱别名中的空格。第一个命令找到组织中在别名中包含空格的所有邮箱并将其存储在临时变量 $Mailboxes 中。第二个命令删除临时变量 $Mailboxes 中存储的所有邮箱的别名中的空格。
    $Mailboxes = Get-Mailbox | Where {$_.Alias -like "* *"}
    ForEach($Mailbox in $Mailboxes) {Set-Mailbox $Mailbox.Name -Alias:($Mailbox.Alias -Replace " ","")}
  • 也可以将上述两个命令组合成一个 Exchange 命令行管理程序命令。
    Get-Mailbox | Where {$_.Alias -like "* *"} | ForEach-Object {Set-Mailbox $_.Name -Alias:($_.Alias -Replace " ","")}
有关语法和参数的详细信息,请参阅 Get-MailboxSet-Mailbox 参考主题。
Bb851499.note(zh-cn,EXCHG.80).gif注意:
上述步骤说明如何删除邮箱别名中的空格。对邮件联系人、邮件用户和通讯组的步骤均相同。只需要将 Get-MailboxSet-Mailbox cmdlet 替换为每个收件人类型对应的 Get-Set- cmdlet。