{"id":9905,"date":"2026-09-06T21:31:58","date_gmt":"2026-09-06T21:31:58","guid":{"rendered":"https:\/\/pariswells.com\/blog\/?p=9905"},"modified":"2026-09-09T08:32:18","modified_gmt":"2026-09-09T08:32:18","slug":"powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os","status":"publish","type":"post","link":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os","title":{"rendered":"Powershell Script to go through Partner Center Customers and find Specific Server OS"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code class=\"\">&lt;#\n.SYNOPSIS\n    Finds all Windows Server 2016 VMs across every customer Azure subscription\n    reachable via your active GDAP relationships.\n\n.DESCRIPTION\n    Reads the customer tenant list produced by Get-GDAPCustomerTenants.ps1\n    (run separately, in its own process, to avoid a Microsoft.Graph\/Az.Accounts\n    assembly conflict), signs into Azure PowerShell, and for each customer\n    tenant:\n      - Lists Azure subscriptions. Tenants where your GDAP role doesn't map to\n        Azure RBAC (or the mapping hasn't been granted) fail here - logged to\n        the errors CSV and skipped, not a script bug.\n      - Runs an Azure Resource Graph query across all VMs, flagging any whose\n        OS image indicates Windows Server 2016.\n      - Falls back to a per-VM instance-view check (Get-AzVM -Status) for\n        Windows VMs whose image reference is ambiguous (custom\/generalized\n        image, or in-place upgrade).\n\n    Exports two CSVs: confirmed Server 2016 findings, and a log of\n    tenants\/subscriptions that couldn't be checked (and why).\n\n.PARAMETER CustomerCsv\n    Path to the customer tenant list from Get-GDAPCustomerTenants.ps1.\n\n.PARAMETER OutputPath\n    Folder to write the CSV reports to. Defaults to the script's own folder.\n#>\n\n[CmdletBinding()]\nparam(\n    [string]$CustomerCsv = (Join-Path $PSScriptRoot 'GDAPCustomers.csv'),\n    [string]$OutputPath  = $PSScriptRoot\n)\n\n$ErrorActionPreference = 'Stop'\n\nif (-not (Test-Path $CustomerCsv)) {\n    throw \"Customer list not found at '$CustomerCsv'. Run Get-GDAPCustomerTenants.ps1 first.\"\n}\n\n# Multiple Az module versions are installed side-by-side on this machine.\n# Pin the newest of each explicitly, Az.Accounts first, so a stale auto-picked\n# version doesn't get loaded ahead of what the others require.\n$moduleVersions = [ordered]@{\n    'Az.Accounts'      = '5.5.3'\n    'Az.Resources'     = '7.1.0'\n    'Az.ResourceGraph' = '1.0.0'\n    'Az.Compute'       = '11.9.0'\n}\nforeach ($m in $moduleVersions.Keys) {\n    Import-Module $m -RequiredVersion $moduleVersions[$m] -ErrorAction Stop\n}\n\n$customers = Import-Csv -Path $CustomerCsv\nif (-not $customers -or $customers.Count -eq 0) {\n    Write-Warning \"No customer tenants in '$CustomerCsv'. Nothing to scan.\"\n    return\n}\n\n$timestamp  = Get-Date -Format 'yyyyMMdd_HHmmss'\n$reportPath = Join-Path $OutputPath \"Server2016_Report_$timestamp.csv\"\n$errorsPath = Join-Path $OutputPath \"Server2016_Report_Errors_$timestamp.csv\"\n\n$findings = [System.Collections.Generic.List[object]]::new()\n$errors   = [System.Collections.Generic.List[object]]::new()\n\nfunction Add-ErrorRow {\n    param($Stage, $TenantId, $TenantName, $SubscriptionId, $SubscriptionName, $Message)\n    $errors.Add([pscustomobject]@{\n        Stage             = $Stage\n        TenantId          = $TenantId\n        TenantName        = $TenantName\n        SubscriptionId    = $SubscriptionId\n        SubscriptionName  = $SubscriptionName\n        Message           = $Message\n    })\n}\n\nWrite-Host \"`n=== Sign in to Azure PowerShell ===\" -ForegroundColor Cyan\nWrite-Host \"A native sign-in window will open (WAM broker) - this supports passkeys\/Windows Hello\/FIDO2,\" -ForegroundColor Cyan\nWrite-Host \"unlike device-code auth, which some tenants' Conditional Access policies block outright.\" -ForegroundColor Cyan\nConnect-AzAccount | Out-Null\n$homeCtx = Get-AzContext\nWrite-Host \"Signed in to Azure as: $($homeCtx.Account.Id)\" -ForegroundColor Green\nWrite-Host \"Customer tenants to check: $($customers.Count)\" -ForegroundColor Green\n\n$idx = 0\nforeach ($customer in $customers) {\n    $idx++\n    $tenantLabel = if ($customer.TenantName) { $customer.TenantName } else { $customer.TenantId }\n    Write-Host \"`n[$idx\/$($customers.Count)] Tenant: $tenantLabel ($($customer.TenantId))\" -ForegroundColor Yellow\n\n    $subs = $null\n    try {\n        $subs = Get-AzSubscription -TenantId $customer.TenantId -ErrorAction Stop\n    } catch {\n        Write-Host \"  Skipped - no Azure RBAC access in this tenant: $($_.Exception.Message)\" -ForegroundColor DarkGray\n        Add-ErrorRow -Stage 'ListSubscriptions' -TenantId $customer.TenantId -TenantName $tenantLabel `\n            -SubscriptionId '' -SubscriptionName '' -Message $_.Exception.Message\n        continue\n    }\n\n    if (-not $subs -or $subs.Count -eq 0) {\n        Write-Host \"  No subscriptions visible in this tenant.\" -ForegroundColor DarkGray\n        continue\n    }\n\n    foreach ($sub in $subs) {\n        Write-Host \"  Subscription: $($sub.Name) ($($sub.Id))\" -ForegroundColor Gray\n        try {\n            Set-AzContext -Subscription $sub.Id -Tenant $customer.TenantId -ErrorAction Stop | Out-Null\n        } catch {\n            Add-ErrorRow -Stage 'SetContext' -TenantId $customer.TenantId -TenantName $tenantLabel `\n                -SubscriptionId $sub.Id -SubscriptionName $sub.Name -Message $_.Exception.Message\n            continue\n        }\n\n        $kql = @\"\nResources\n| where type =~ 'microsoft.compute\/virtualmachines'\n| extend osType = tostring(properties.storageProfile.osDisk.osType)\n| extend imgPublisher = tostring(properties.storageProfile.imageReference.publisher)\n| extend imgOffer = tostring(properties.storageProfile.imageReference.offer)\n| extend imgSku = tostring(properties.storageProfile.imageReference.sku)\n| extend powerState = tostring(properties.extended.instanceView.powerState.displayStatus)\n| project name, resourceGroup, location, osType, imgPublisher, imgOffer, imgSku, powerState, id\n\"@\n        try {\n            $vms = Search-AzGraph -Query $kql -Subscription $sub.Id -ErrorAction Stop\n        } catch {\n            Add-ErrorRow -Stage 'ResourceGraphQuery' -TenantId $customer.TenantId -TenantName $tenantLabel `\n                -SubscriptionId $sub.Id -SubscriptionName $sub.Name -Message $_.Exception.Message\n            continue\n        }\n\n        foreach ($vm in $vms) {\n            $isKnown2016 = $vm.imgSku -match '2016' -or $vm.imgOffer -match '2016'\n            $isWindowsUnknown = ($vm.osType -eq 'Windows') -and -not $isKnown2016 -and\n                                 ([string]::IsNullOrEmpty($vm.imgSku) -or $vm.imgOffer -notmatch '^WindowsServer$' -or $vm.imgSku -notmatch '^\\d{4}')\n\n            if ($isKnown2016) {\n                $findings.Add([pscustomobject]@{\n                    TenantId          = $customer.TenantId\n                    TenantName        = $tenantLabel\n                    SubscriptionId    = $sub.Id\n                    SubscriptionName  = $sub.Name\n                    ResourceGroup     = $vm.resourceGroup\n                    VMName            = $vm.name\n                    Location          = $vm.location\n                    PowerState        = $vm.powerState\n                    DetectedOS        = \"$($vm.imgOffer) $($vm.imgSku)\"\n                    DetectionMethod   = 'ImageReference'\n                })\n                Write-Host \"    [2016] $($vm.name) - $($vm.imgOffer) $($vm.imgSku)\" -ForegroundColor Red\n            }\n            elseif ($isWindowsUnknown) {\n                try {\n                    $detail = Get-AzVM -ResourceGroupName $vm.resourceGroup -Name $vm.name -Status -ErrorAction Stop\n                    $osName = $detail.OsName\n                    if ($osName -match '2016') {\n                        $findings.Add([pscustomobject]@{\n                            TenantId          = $customer.TenantId\n                            TenantName        = $tenantLabel\n                            SubscriptionId    = $sub.Id\n                            SubscriptionName  = $sub.Name\n                            ResourceGroup     = $vm.resourceGroup\n                            VMName            = $vm.name\n                            Location          = $vm.location\n                            PowerState        = $vm.powerState\n                            DetectedOS        = $osName\n                            DetectionMethod   = 'InstanceView'\n                        })\n                        Write-Host \"    [2016] $($vm.name) - $osName (instance view)\" -ForegroundColor Red\n                    }\n                } catch {\n                    Add-ErrorRow -Stage 'InstanceViewCheck' -TenantId $customer.TenantId -TenantName $tenantLabel `\n                        -SubscriptionId $sub.Id -SubscriptionName $sub.Name -Message \"$($vm.name): $($_.Exception.Message)\"\n                }\n            }\n        }\n    }\n}\n\n$findings | Export-Csv -Path $reportPath -NoTypeInformation -Encoding UTF8\n$errors   | Export-Csv -Path $errorsPath -NoTypeInformation -Encoding UTF8\n\nWrite-Host \"`n=== Done ===\" -ForegroundColor Cyan\nWrite-Host \"GDAP customer tenants checked : $($customers.Count)\" -ForegroundColor Green\nWrite-Host \"Server 2016 VMs found         : $($findings.Count)\" -ForegroundColor $(if ($findings.Count -gt 0) { 'Red' } else { 'Green' })\nWrite-Host \"Report                        : $reportPath\" -ForegroundColor Green\nWrite-Host \"Tenants\/subs skipped or errored (no Azure RBAC via GDAP yet): $($errors.Count)\" -ForegroundColor Yellow\nWrite-Host \"Errors log                    : $errorsPath\" -ForegroundColor Yellow\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-9905","post","type-post","status-publish","format-standard","hentry","category-research"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"paris\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Welcome to Pariswells.com |\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Powershell Script to go through Partner Center Customers and find Specific Server OS | Welcome to Pariswells.com\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-09-06T21:31:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-09-09T08:32:18+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Powershell Script to go through Partner Center Customers and find Specific Server OS | Welcome to Pariswells.com\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/research\\\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#article\",\"name\":\"Powershell Script to go through Partner Center Customers and find Specific Server OS | Welcome to Pariswells.com\",\"headline\":\"Powershell Script to go through Partner Center Customers and find Specific Server OS\",\"author\":{\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/author\\\/paris#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/#organization\"},\"datePublished\":\"2026-09-06T21:31:58+00:00\",\"dateModified\":\"2026-09-09T08:32:18+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/research\\\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/research\\\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#webpage\"},\"articleSection\":\"Research\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/research\\\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/category\\\/research#listItem\",\"name\":\"Research\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/category\\\/research#listItem\",\"position\":2,\"name\":\"Research\",\"item\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/category\\\/research\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/research\\\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#listItem\",\"name\":\"Powershell Script to go through Partner Center Customers and find Specific Server OS\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/research\\\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#listItem\",\"position\":3,\"name\":\"Powershell Script to go through Partner Center Customers and find Specific Server OS\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/category\\\/research#listItem\",\"name\":\"Research\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/#organization\",\"name\":\"Welcome to Pariswells.com\",\"url\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/author\\\/paris#author\",\"url\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/author\\\/paris\",\"name\":\"paris\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/research\\\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/93b8ee3f592ac401167f870452bd82d43de80152cd3524e2853403658ada9984?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"paris\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/research\\\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#webpage\",\"url\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/research\\\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os\",\"name\":\"Powershell Script to go through Partner Center Customers and find Specific Server OS | Welcome to Pariswells.com\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/research\\\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/author\\\/paris#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/author\\\/paris#author\"},\"datePublished\":\"2026-09-06T21:31:58+00:00\",\"dateModified\":\"2026-09-09T08:32:18+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/\",\"name\":\"Welcome to Pariswells.com\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/pariswells.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Powershell Script to go through Partner Center Customers and find Specific Server OS | Welcome to Pariswells.com","description":"","canonical_url":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#article","name":"Powershell Script to go through Partner Center Customers and find Specific Server OS | Welcome to Pariswells.com","headline":"Powershell Script to go through Partner Center Customers and find Specific Server OS","author":{"@id":"https:\/\/pariswells.com\/blog\/author\/paris#author"},"publisher":{"@id":"https:\/\/pariswells.com\/blog\/#organization"},"datePublished":"2026-09-06T21:31:58+00:00","dateModified":"2026-09-09T08:32:18+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#webpage"},"isPartOf":{"@id":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#webpage"},"articleSection":"Research"},{"@type":"BreadcrumbList","@id":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/pariswells.com\/blog\/#listItem","position":1,"name":"Home","item":"https:\/\/pariswells.com\/blog\/","nextItem":{"@type":"ListItem","@id":"https:\/\/pariswells.com\/blog\/category\/research#listItem","name":"Research"}},{"@type":"ListItem","@id":"https:\/\/pariswells.com\/blog\/category\/research#listItem","position":2,"name":"Research","item":"https:\/\/pariswells.com\/blog\/category\/research","nextItem":{"@type":"ListItem","@id":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#listItem","name":"Powershell Script to go through Partner Center Customers and find Specific Server OS"},"previousItem":{"@type":"ListItem","@id":"https:\/\/pariswells.com\/blog\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#listItem","position":3,"name":"Powershell Script to go through Partner Center Customers and find Specific Server OS","previousItem":{"@type":"ListItem","@id":"https:\/\/pariswells.com\/blog\/category\/research#listItem","name":"Research"}}]},{"@type":"Organization","@id":"https:\/\/pariswells.com\/blog\/#organization","name":"Welcome to Pariswells.com","url":"https:\/\/pariswells.com\/blog\/"},{"@type":"Person","@id":"https:\/\/pariswells.com\/blog\/author\/paris#author","url":"https:\/\/pariswells.com\/blog\/author\/paris","name":"paris","image":{"@type":"ImageObject","@id":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/93b8ee3f592ac401167f870452bd82d43de80152cd3524e2853403658ada9984?s=96&d=mm&r=g","width":96,"height":96,"caption":"paris"}},{"@type":"WebPage","@id":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#webpage","url":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os","name":"Powershell Script to go through Partner Center Customers and find Specific Server OS | Welcome to Pariswells.com","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/pariswells.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os#breadcrumblist"},"author":{"@id":"https:\/\/pariswells.com\/blog\/author\/paris#author"},"creator":{"@id":"https:\/\/pariswells.com\/blog\/author\/paris#author"},"datePublished":"2026-09-06T21:31:58+00:00","dateModified":"2026-09-09T08:32:18+00:00"},{"@type":"WebSite","@id":"https:\/\/pariswells.com\/blog\/#website","url":"https:\/\/pariswells.com\/blog\/","name":"Welcome to Pariswells.com","inLanguage":"en-US","publisher":{"@id":"https:\/\/pariswells.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Welcome to Pariswells.com |","og:type":"article","og:title":"Powershell Script to go through Partner Center Customers and find Specific Server OS | Welcome to Pariswells.com","og:url":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os","article:published_time":"2026-09-06T21:31:58+00:00","article:modified_time":"2026-09-09T08:32:18+00:00","twitter:card":"summary","twitter:title":"Powershell Script to go through Partner Center Customers and find Specific Server OS | Welcome to Pariswells.com"},"aioseo_meta_data":{"post_id":"9905","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-09-06 21:31:15","updated":"2026-09-09 08:32:18","primary_term":null,"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/pariswells.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/pariswells.com\/blog\/category\/research\" title=\"Research\">Research<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tPowershell Script to go through Partner Center Customers and find Specific Server OS\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/pariswells.com\/blog\/"},{"label":"Research","link":"https:\/\/pariswells.com\/blog\/category\/research"},{"label":"Powershell Script to go through Partner Center Customers and find Specific Server OS","link":"https:\/\/pariswells.com\/blog\/research\/powershell-script-to-go-through-partner-center-customers-and-find-specific-server-os"}],"_links":{"self":[{"href":"https:\/\/pariswells.com\/blog\/wp-json\/wp\/v2\/posts\/9905","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pariswells.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pariswells.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pariswells.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pariswells.com\/blog\/wp-json\/wp\/v2\/comments?post=9905"}],"version-history":[{"count":2,"href":"https:\/\/pariswells.com\/blog\/wp-json\/wp\/v2\/posts\/9905\/revisions"}],"predecessor-version":[{"id":9912,"href":"https:\/\/pariswells.com\/blog\/wp-json\/wp\/v2\/posts\/9905\/revisions\/9912"}],"wp:attachment":[{"href":"https:\/\/pariswells.com\/blog\/wp-json\/wp\/v2\/media?parent=9905"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pariswells.com\/blog\/wp-json\/wp\/v2\/categories?post=9905"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pariswells.com\/blog\/wp-json\/wp\/v2\/tags?post=9905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}