如何使用 PowerShell 向 Active Directory 用户添加代理地址

最后更新于:

支持多个电子邮件别名的关键是管理代理地址。这确保了混合环境中的邮件路由,并促进 Exchange 或 Microsoft 365 迁移期间的顺利过渡。PowerShell 使用 Set-ADUser cmdlet 帮助您添加代理地址。然而,该 cmdlet 存在某些限制,导致重复工作并需要高级技术技能。本文介绍了三种向 AD 用户添加代理地址的简便方法。

什么是代理地址?

代理地址(或电子邮件别名)是分配给 AD 或 Exchange 中用户邮箱的备用电子邮件地址。它允许用户接收发送到同一邮箱的多个地址的邮件。代理地址对于管理多个域、确保邮件投递以及在混合或迁移环境中保持兼容性至关重要。

在 AD 中,这些地址存储在 proxyAddresses 属性中,该属性是一个多值属性,可以包含 SMTP、X500 和 SIP 等不同类型的地址。当对象同步到 Microsoft Entra ID 时,mail 或 proxyAddresses 属性中的值会被复制并用于称为代理计算的过程。该过程根据本地目录数据的各个方面确定 Entra ID 中的最终代理地址集合。

  • PowerShell
  • ADUC
  • ADManager Plus
  • 原生工具的限制
  • 为什么选择 ADManager Plus
  • 常见问题解答
 

使用 PowerShell 添加代理地址

前提条件

  1. 以管理员身份打开 PowerShell。
  2. Ensure the AD module is loaded. If not, import by running the script below:
    Import-Module ActiveDirectory
  3. 确定要添加代理地址的 AD 用户身份,可以是其 sAMAccountName、UserPrincipalName 或 DistinguishedName。

使用 Set-ADUser 添加代理地址

使用带有 -Add 参数的 Set-ADUser cmdlet 向 proxyAddresses 属性添加新的代理地址。这确保现有代理地址不会被覆盖。

下面的示例为用户 "JohnDoe" 添加 "john.doe.alias@example.com" 作为次要代理地址:

Set-ADUser -Identity "JohnDoe" -Add @{proxyAddresses="smtp:john.doe.alias@example.com"}

使用 PowerShell 修改代理地址的示例和脚本

示例 1:在单个命令中添加多个代理地址

为 "jdoe" 追加两个新的 SMTP 代理地址,同时不影响现有地址。

Set-ADUser -Identity "jdoe" -Add @{'proxyAddresses'=("smtp:jdoe.sales@corp.com","smtp:jdoe.support@corp.com")}

示例 2:为 OU 中的一组用户添加代理地址

根据账户名称为 Sales OU 中的每个用户添加唯一的销售别名。

Get-ADUser -Filter * -SearchBase "OU=Sales,DC=domain,DC=com" | ForEach-Object {
Set-ADUser -Identity $_.SamAccountName -Add @{'proxyAddresses'="smtp:$($_.SamAccountName).sales@corp.com"}
}

示例 3:使用 CSV 文件批量为多个用户添加代理地址

导入包含 sAMAccountNameProxyAddressToAdd 列的用户列表 CSV 文件 "users.csv"。

Import-Csv -Path "C:\path\to\users.csv" | ForEach-Object {
$userSAM = $_.sAMAccountName
$newProxy = $_.ProxyAddressToAdd
Set-ADUser -Identity $userSAM -Add @{proxyAddresses=$newProxy}
}

示例 4:为用户设置主 SMTP 地址

使用 Set-Mailbox cmdlet 设置主代理地址。

Set-Mailbox -Identity "JohnDoe" -PrimarySmtpAddress "john.doe.new.primary@example.com"

支持的参数

修改代理地址时可使用以下重要参数:

参数 描述
-Identity 指定要修改的用户账户。
-Add 要追加的属性哈希表(如 proxyAddresses)。
-Replace 用提供的数组替换现有的 proxyAddresses。
-Remove 从用户中移除代理地址。
-Filter 按条件查找用户的查询语法。
-SearchBase 限定作用域到特定 OU/容器。

如何使用 ADUC 添加代理地址

Active Directory Users and Computers (ADUC) 控制台提供了一个图形界面,用于向用户添加代理地址:

  1. 打开 Active Directory Users and Computers
  2. 找到并右键点击您选择的用户,选择 Properties
  3. 选择 Attribute Editor 选项卡。
  4. 向下滚动并选择 proxyAddresses 属性。
  5. 点击 Edit 并添加新地址。主别名前使用 "SMTP:",所有次要别名前使用 "smtp:"(例如 SMTP:user@domain.com or smtp:alias@domain.com)。
  6. 点击 OK 应用更改。
使用 ADUC 为 AD 用户添加代理地址

使用 ADManager Plus 添加代理地址

ADManager Plus 是一款集成的 AD、Exchange 和 Microsoft 365 管理解决方案,允许您向单个用户或批量多个用户添加代理地址。

  1. 导航至 Management > User Management > Bulk User Modification > Exchange Tasks > Modify SMTP Address
  2. 选择用户类别为 Mailbox Enabled UsersMail Enabled Users
  3. Proxy Address 字段中,点击 + 添加 SMTP 地址。主别名使用 "SMTP:" 前缀,所有次别名使用 "smtp:" 前缀(例如 SMTP:user@domain.com or smtp:alias@domain.com)。
  4. Show User List 下,选择域并输入要添加代理地址的用户名称。要导入用户列表,请选择 Import CSV
  5. 在接下来的界面中,选择用户并点击 Apply
使用 ADManager Plus 为 Active Directory 用户添加代理地址

使用原生工具修改代理地址的限制

尽管功能强大,但仅依赖 PowerShell 和 ADUC 可能会带来挑战:

  • PowerShell 命令在不同用例和场景下可能变得复杂。
  • 需要精确的可分辨名称和用户标识,这可能会使批量更新复杂化。
  • IT 管理员可能会花费大量时间排查错误,影响工作效率。
  • 委派可能变得复杂,因为技术人员需要提升权限。
  • ADUC 限制一次只能修改一个用户。

ADManager Plus 如何帮助您管理 AD 用户

ADManager Plus 是一款基于 Web 的 AD 和 Microsoft Entra ID 管理与报告工具,简化了从集中界面进行的 AD 用户管理及更多操作:

使用 ADManager Plus 简化 AD 管理和报告

常见问题解答

SMTP(简单邮件传输协议)定义了邮件服务器之间发送邮件的方式。Exchange 或 AD 中每个用户的邮箱都使用 SMTP 地址,这是发送和接收邮件的唯一标识。主 SMTP 地址是用户的主要电子邮件地址,额外的代理地址(次 SMTP 地址)允许用户接收发送到同一邮箱其他别名的邮件。

主 SMTP 地址是与用户在 AD 或 Exchange 中邮箱关联的主要电子邮件地址。用户发送邮件时,“发件人”字段显示的就是此地址。虽然用户可以拥有多个代理地址,但主 SMTP 地址唯一标识邮箱并处理外发邮件通信。

区别在于大小写敏感。SMTP:(大写)表示主电子邮件地址,而 smtp:(小写)表示次要地址。在 Microsoft Exchange 等系统中,主地址是默认回复地址,所有次要地址用于接收邮件,但不会作为默认回复地址。

Active Directory管理与报告的一站式解决方案
电子邮件下载链接 Email the ADManager Plus download link