Hello,
I’m looking to combine/match results from two different object sets. The first one is from ‘Get-PowerBIReport’ has the following output:
[pre]
Id : 12573cbf-77ab-42c4-b915-6
Name : PBPhone
WebUrl : Power BI Sign in
EmbedUrl : Microsoft Power BI
XJsIjoiaHR0cHM6Ly9XQUJJLVVTLUVBU1QyLXJlZGlyZWN0LmFuYWx5c2lzLndpbmRvd3MubmV0In0%3d
DatasetId : 971a8a6e-f465-4e42-b2b8
[/pre]
The other is from ‘Get-PowerBIDataset’ and has the following output:
[pre]
Id : 29a26268-8b33-4de5-be90-63
Name : server_count_example
ConfiguredBy :
DefaultRetentionPolicy :
AddRowsApiEnabled : False
Tables :
WebUrl :
Relationships :
Datasources :
DefaultMode :
IsRefreshable : True
IsEffectiveIdentityRequired : False
IsEffectiveIdentityRolesRequired : False
IsOnPremGatewayRequired : True
[/pre]
Is there anyway to match the results? I’d also like to add a third object from a different get statement.
Thanks,
Frank
I tried something similar, but not quite the linq query. I created an empty array to collect the objects, but I still seem to be missing data.
[pre]
$outputCollection = @()
$reports = Get-PowerBIReport -Scope Organization
$datasets = Get-PowerBIDataset -Scope Organization
$reports | Foreach-Object {
#Associate objects
$reportObject = $reports
$datasetObject = $datasets | Where-Object {$_.Id -eq $reportObject.Id}
#Make a combined object
$outputObject = "" | Select Name, ConfiguredBy, MailboxAttribute
$outputObject.Name = $reportObject.Name
$outputObject.ConfiguredBy = $reportObject.ConfiguredBy
$outputObject.ID = $datasetObject.Id
#Add the object to the collection
$outputCollection += $outputObject
}
$outputCollection
[/pre]
The output:
[pre]
Name : {Dashboard Usage Metrics Report, Office 365 Adoption Preview, Office 365
Adoption Preview, Microsoft Azure Consumption Insights…}
ConfiguredBy :
ID:
[/pre]
I’m still missing the link between reports and datasets?
Thanks,
Frank