通过旧邮箱获取AD用户ProxyAddresses属性中的新旧邮箱
用旧邮箱查询AD用户的所有proxyAddresses地址
原来的脚本只能通过当前主邮箱获取AD用户的proxyAddresses属性,原因是它只过滤了EmailAddress字段——这个字段存储的是用户当前的主邮箱,而旧邮箱一般保存在多值属性proxyAddresses中,所以用旧邮箱查询时返回空结果。
要实现仅通过旧邮箱就能获取用户所有新旧邮箱地址,只需要修改Get-ADUser的过滤条件,直接匹配proxyAddresses属性即可:
# 替换成要查询的旧邮箱地址 $oldEmail = "old-user@example.com" # 查询proxyAddresses中包含该旧邮箱的AD用户 $user = Get-ADUser -Filter "proxyAddresses -like '*$oldEmail*'" -Properties proxyAddresses # 输出该用户所有的邮箱地址(包含新旧) $user.proxyAddresses
说明
proxyAddresses是AD用户的多值属性,里面的地址格式通常为SMTP:主邮箱地址(大写SMTP标识主邮箱)或smtp:别名/旧邮箱地址(小写smtp标识别名/旧邮箱)。- 使用
-like '*$oldEmail*'可以忽略前缀直接匹配邮箱地址部分,确保能命中所有包含该旧邮箱的用户记录,适用性更广。 - 如果需要精确匹配特定前缀的地址,可以调整过滤条件:
$user = Get-ADUser -Filter { proxyAddresses -eq "smtp:$oldEmail" -or proxyAddresses -eq "SMTP:$oldEmail" } -Properties proxyAddresses
内容的提问来源于stack exchange,提问作者On3N3xus
相关产品推荐
相关产品推荐

