Azure企业应用Object ID转显示名PowerShell脚本故障求助
解决Azure企业应用Object ID转显示名的PowerShell脚本问题
可能的问题原因及修复方案
1. 变量赋值逻辑冲突
直接覆盖$caller.caller会丢失原始的Object ID,后续如果需要复用ID会出问题,建议改用新变量存储结果:
$appDisplayName = (Get-AzADApplication -ObjectId $caller.caller).DisplayName # 后续使用$appDisplayName即可,保留$caller.caller的原始Object ID
2. 权限不足
Get-AzADApplication需要Directory.Read.All或Application.Read.All的Azure AD权限,排查步骤:
- 运行
Connect-AzAccount重新登录,确保当前账号有权限读取企业应用信息 - 若为自动化服务主体,需在Azure AD中给其分配对应的API权限
3. Object ID格式无效
先验证$caller.caller中的值是否为有效GUID:
Write-Host "当前待转换的Object ID: $($caller.caller)"
如果输出为空、格式错误(非标准GUID),先排查数据来源的正确性
4. Az模块版本兼容问题
旧版Az.Resources模块可能存在bug,更新模块后重试:
Update-Module -Name Az.Resources -Force
5. 混淆企业应用与服务主体
如果$caller.caller是服务主体的Object ID,需改用Get-AzADServicePrincipal:
$spDisplayName = (Get-AzADServicePrincipal -ObjectId $caller.caller).DisplayName
内容的提问来源于stack exchange,提问作者acorn-plain
相关产品推荐
相关产品推荐

