Combine Two Different Objects

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

Take a look: Executing LINQ Queries in PowerShell – Part 2 – PowerShell.org

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