$PowerBi = Import-Csv -Path D:\Downloads\serverinventory20251002.csv
$SRM = Import-Csv -Path D:\Downloads\itdvmvc1.nd.gov-itdvmvc2.nd.gov-20251002-102657.csv
$VMs = Get-VM | Where-Object { $_.ExtensionData.summary.config.ManagedBy.Type -eq "placeholderVm" }

$Result = [System.Collections.ArrayList]@()
foreach ($pbi in $PowerBi) {
    Write-Verbose -Message ($pbi.'Host Name') -Verbose
    $obj = $null

    $obj = [PSCustomObject]@{
        PowerBi     = $pbi.'Host Name'
        Placeholder = $VMs | Where-Object Name -EQ $pbi.'Host Name' | Select-Object -ExpandProperty Name -First 1;
        SRM         = $SRM | Where-Object "Virtual Machine" -EQ $pbi.'Host Name' | Select-Object -ExpandProperty "Virtual Machine"
        CMDB        = ((Get-ITDServiceNowRecord -Table cmdb_ci_server -Filter ("name=" + $pbi.'Host Name'.split('.')[0])).name.display_value)
    }
    $null = $Result.Add($obj)
}

foreach ($VM in $VMs) {
    if ($Result | Where-Object Placeholder -EQ $VM.Name) {
        #do nothing
    }
    else {
        Write-Verbose -Message ($VM.Name) -Verbose
        $obj = [PSCustomObject]@{
            PowerBi     = $PowerBi | Where-Object 'Host Name' -EQ $pbi.'Host Name'
            Placeholder = $VM.Name;            
            SRM         = $SRM | Where-Object "Virtual Machine" -EQ $pbi.'Host Name'
            CMDB        = ((Get-ITDServiceNowRecord -Table cmdb_ci_server -Filter ("name=" + $pbi.'Host Name'.split('.')[0])).name.display_value);
        }
        $null = $Result.Add($obj)
    }
}