Combine Two Different Objects


I’m looking to combine/match results from two different object sets. The first one is from ‘Get-PowerBIReport’ has the following output:


Id : 12573cbf-77ab-42c4-b915-6
Name : PBPhone
WebUrl :
EmbedUrl :
DatasetId : 971a8a6e-f465-4e42-b2b8


The other is from ‘Get-PowerBIDataset’ and has the following output:


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


Is there anyway to match the results? I’d also like to add a third object from a different get statement.



Take a look:

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.

$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



The output:


Name : {Dashboard Usage Metrics Report, Office 365 Adoption Preview, Office 365
Adoption Preview, Microsoft Azure Consumption Insights…}
ConfiguredBy :


I’m still missing the link between reports and datasets?