You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从对象规范名称获取用户主体名称(UPN)

解决方案

完全可以实现,GrantSendOnBehalfTo 属性返回的是对象的可分辨名称(DN),你只需要通过DN查询对应账户的UPN属性,就能直接生成UPN数组,分两种场景给出可用脚本:

1. 本地AD/本地Exchange环境(已安装ActiveDirectory模块)

# 提取共享邮箱的SendOnBehalf权限项DN列表
$dNList = (Get-Mailbox -Identity SharedMailbox1).GrantSendOnBehalfTo
# 遍历DN查询AD用户提取UPN,过滤无效对象
$upnArray = $dNList | ForEach-Object {
    $adUser = Get-ADUser -Identity $_ -ErrorAction SilentlyContinue
    if ($adUser) { $adUser.UserPrincipalName }
}

执行完成后$upnArray就是你需要的UPN数组,可直接调用。

2. Exchange Online环境(无需本地AD模块)

# 提取共享邮箱的SendOnBehalf权限项DN列表
$dNList = (Get-EXOMailbox -Identity SharedMailbox1).GrantSendOnBehalfTo
# 遍历DN查询Exchange收件人提取UPN,过滤已删除/失效对象
$upnArray = $dNList | ForEach-Object {
    $recipient = Get-EXORecipient -Identity $_ -ErrorAction SilentlyContinue
    if ($recipient) { $recipient.UserPrincipalName }
}

你输出列表中Terminated路径下的离职用户如果已经从AD/Exchange中删除,上述脚本的错误忽略逻辑会自动跳过这些无效项,避免执行报错。


内容的提问来源于stack exchange,提问作者MWH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:27:01