如何通过PowerShell脚本将PowerBI工作区高级容量转为普通容量
PowerBI工作区高级容量转普通容量的PowerShell脚本验证与修正
原代码存在的问题
- 循环语法错误:
forEach不是PowerShell的合法命令,需使用ForEach-Object(或缩写%) - 请求方法错误:
Invoke-PowerBIRestMethod的-Method参数需指定为Post,而非AssignToCapacity - 请求体传递错误:容量ID的JSON内容需通过
-Body参数传递,且必须转换为JSON格式
修正后的正确代码
# 连接PowerBI服务账户 Connect-PowerBIServiceAccount # 导入包含工作区ID的CSV文件 $data = Import-Csv -Path C:\powershell\UnassignWorkspace.csv # 遍历每个目标工作区 $data | ForEach-Object { # 构造API请求路径 $uri = "https://api.powerbi.com/v1.0/myorg/groups/$($_.WorkspaceID)/AssignToCapacity" # 构造请求体:空GUID代表将工作区转为普通容量 $body = @{ capacityId = "00000000-0000-0000-0000-000000000000" } | ConvertTo-Json # 发送POST请求完成容量转换 Invoke-PowerBIRestMethod -Url $uri -Method Post -Body $body -ContentType 'application/json' }
关键说明
- 确保CSV文件
UnassignWorkspace.csv包含名为WorkspaceID的列,存储需要转换的工作区ID - 执行前需确认已安装PowerBI管理模块,安装命令:
Install-Module -Name MicrosoftPowerBIMgmt - 空GUID
00000000-0000-0000-0000-000000000000是PowerBI API规定的移出高级容量的专用标识
内容的提问来源于stack exchange,提问作者Md Shahnawaz Alam
相关产品推荐
相关产品推荐

