使用变量调用Add-PowerBIWorkspaceUser返回404错误如何解决?
问题成因
- Azure AD组创建的传播延迟:
New-AzADGroup创建的Azure AD组不会立即同步到PowerBI服务的身份验证后端,哪怕本地可以正常打印组ID,PowerBI侧暂时还无法识别该组的GUID,就会返回NotFound错误。 - 变量类型不匹配:
New-PowerBIWorkspace返回的Id属性、New-AzADGroup返回的Id属性本质是GUID结构,不是Add-PowerBIWorkspaceUser要求的纯字符串类型,命令传参时的隐式转换可能出现异常,哪怕Write-Host可以正常打印值,实际传参时携带的额外类型信息也会导致请求异常。
解决方法
将变量显式转换为纯字符串格式,同时增加等待时间预留Azure AD组同步窗口,修改后可正常运行的代码如下:
# 创建PowerBI工作区,显式转换ID为字符串 $workspace = New-PowerBIWorkspace -Name test1 $workspaceId = $workspace.Id.ToString() # 创建Azure AD组,显式转换ID为字符串 $administrator = New-AzADGroup -DisplayName "test1 admin" -MailNickName "test1_admin" $adminGroupId = $administrator.Id.ToString() # 等待Azure AD组同步到PowerBI服务,可根据实际情况调整等待时长,建议15-30秒 Start-Sleep -Seconds 20 # 传入纯字符串参数执行权限添加 Add-PowerBIWorkspaceUser -Scope Individual -Id $workspaceId -Identifier $adminGroupId -AccessRight Admin -PrincipalType Group -Verbose
如果偶现仍报错的情况,可以增加3-5次的重试逻辑,每次重试间隔10秒即可。
内容的提问来源于stack exchange,提问作者Jørgen V
相关产品推荐
相关产品推荐

