【问题标题】:Unable to run Add-PowerBIWorkspaceUser with variables无法使用变量运行 Add-PowerBIWorkspaceUser
【发布时间】:2021-11-01 10:04:24
【问题描述】:

我有一个简短的脚本,它创建一个 PowerBI 工作区、一个 Azure AD 组,最后将此组添加为工作区的管理员。

当我在没有变量的情况下运行这些命令并将工作区 ID 字符串和组 GUID 字符串添加到 Add-PowerBIWorkspaceUser 时,它工作正常。当我使用变量运行命令时,它会中断。

这会起作用

Add-PowerBIWorkspaceUser -Scope Individual -Id myWorkSpaceIDasString -Identifier myIdentifierAsString -AccessRight Admin -PrincipalType Group

这打破了

$workspace = New-PowerBIWorkspace -Name test1
$administrator = New-AzADGroup -DisplayName "test1 admin" -MailNickName "test1_admin"
Add-PowerBIWorkspaceUser -Scope Individual -Id $workspace.id -Identifier $administrator.id -AccessRight Admin -PrincipalType Group -Verbose

命令的详细输出

Add-PowerBIWorkspaceUser:操作返回了无效的状态代码“未找到” 详细:请求 Uri:https://api.powerbi.com/v1.0/myorg/groups/9f97ab99-c144-4abb-9952-009311ecd389/users 详细:状态代码:未找到 (404)

请注意,Write-Host $workspace 和 $administrator 工作正常,并且正在从命令中输出作为字符串的实际 ID。

当运行 Resolve-PowerBIError -Last 这是输出

   HistoryId: 101

RequestId        : 542a46ef-642a-40c4-8eb7-fe79a9d76c21
Response         : Not Found (404): {"error":{"code":"PowerBIEntityNotFound","pbi.error":{"code":"PowerBIEntityNotFound","parameters":{},"details":[],"exceptionCulprit":1}}}
PowerBIErrorInfo :
ResponseDate     : Mon, 01 Nov 2021 11:32:01 GMT
RequestMethod    : POST
RequestUri       : https://api.powerbi.com/v1.0/myorg/groups/d33c94f4-da97-4d85-9433-5c23cff699a3/users
InvocationInfo   : {Add-PowerBIWorkspaceUser}
Line             : Add-PowerBIWorkspaceUser -Scope Individual -Id $workspace.id -Identifier $administrator.id -AccessRight Admin -PrincipalType Group -Verbose
Position         : At line:1 char:1
                   + Add-PowerBIWorkspaceUser -Scope Individual -Id $workspace.id -Identif …
                   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
StackTrace       :    at Microsoft.PowerBI.Api.V2.Groups.AddGroupUserWithHttpMessagesAsync(String groupId, GroupUserAccessRight userDetails, Dictionary`2 customHeaders, CancellationToken cancellationToken)   
                      at Microsoft.PowerBI.Api.V2.GroupsExtensions.AddGroupUserAsync(IGroups operations, String groupId, GroupUserAccessRight userDetails, CancellationToken cancellationToken)
                      at Microsoft.PowerBI.Api.V2.GroupsExtensions.AddGroupUser(IGroups operations, String groupId, GroupUserAccessRight userDetails)
                      at Microsoft.PowerBI.Commands.Workspaces.AddPowerBIWorkspaceUser.ExecuteCmdlet()
                      at Microsoft.PowerBI.Commands.Common.PowerBICmdlet.ProcessRecord()
HistoryId        : 101

在我看来,命令中的变量根本没有被替换。我做错了吗?

【问题讨论】:

  • “这个中断”代码在语法上看起来不错,但我注意到错误消息显示了不同的参数(例如 -Id $workspace 而不是 -Id $workspace.id。你确定你运行的是当前版本你的代码?
  • @zett42 绝对。我什至尝试直接在 Powershell 中逐行执行。然而。在对脚本进行了一些小的更改以提高可见性后,我忘记了更新错误。立即更新错误。

标签: powershell powershell-core


【解决方案1】:

发现问题。 Azure AD 和 PowerBI 之间似乎存在一些同步延迟。在网上找不到任何有关此延迟时间的信息。

我添加了一个简单的Start-Sleep -s 30,但可能应该实现一个适当的退避/重试功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多