Forum Discussion
PowerShell ConvertFrom-Json Does not Create All Properties of API Result
I am issuing the following via PowerShell
$apiResult = Invoke-PowerBIRestMethod -Url 'https://api.powerbi.com/v1.0/myorg/admin/groups?$expand=dashboards,users,reports,datasets,dataflows,workbooks&$top=5000' -Method Get | ConvertFrom-Json
The call works and everything is returned, however, on the Group object there is only a boolean "IsOnDedicatedCapcity" field, and not a CapacityId.
If I exclude the | ConvertFrom-Json, and look at the Raw JSON, the property is there. I'm guessing since the first object returned does not have a CapacityId, when PowerShell tries to create an ojbect to store the result that the CapcityId property is excluded.
To test this theory I changed the API call to use a filter to only return groups on a capacity via...
'https://api.powerbi.com/v1.0/myorg/admin/groups?$filter=isOnDedicatedCapacity eq true & $expand=dashboards,users,reports,datasets,dataflows,workbooks&$top=10'
Now, when I issue the ConvertFrom-Json, the CapacityId property is present on the object PowerShell creates for me.
This is probably more of a PowerShell question at this point but is there a way to force the ConvertFrom-Json method to include all properties in the object array even if the first element property is not present?
2 Replies
- lbendlinSuper User
wonder what happens when you don't expand the related entities?
- TravisKaleHelper I
Calls which did not expand the related entities had the same result. I did further testing and modified the original post with updated info. Is more a powershell issue then a Power BI API issue. I guess this is why the cmdlets exist, I am going to turn back to the PS cmdlets as the issue I was having with them is easier to workaround than this issue. Thanks for taking a look lbendlin