{"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-06T21:31:59","modified_gmt":"2026-09-06T21:31:59","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 VMs of a given OS year (e.g. 2012, 2016) across\n    every customer Azure subscription reachable via your active GDAP\n    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 the target OS year. Matching on the year alone\n        also catches R2 variants (e.g. \"2012\" matches both 2012-Datacenter\n        and 2012-R2-Datacenter).\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 findings, and a log of tenants\/subscriptions\n    that couldn't be checked (and why).\n\n.PARAMETER OSYear\n    The Windows Server release year to search for, e.g. '2012', '2016', '2019'.\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    [Parameter(Mandatory)]\n    [string]$OSYear,\n\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 \"Server${OSYear}_Report_$timestamp.csv\"\n$errorsPath = Join-Path $OutputPath \"Server${OSYear}_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 \"You'll get a device code - open the printed URL in your normal browser and enter it there.\" -ForegroundColor Cyan\nConnect-AzAccount -UseDeviceAuthentication | 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\nWrite-Host \"Searching for OS year: $OSYear\" -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            $isKnownYear = $vm.imgSku -match [regex]::Escape($OSYear) -or $vm.imgOffer -match [regex]::Escape($OSYear)\n            $isWindowsUnknown = ($vm.osType -eq 'Windows') -and -not $isKnownYear -and\n                                 ([string]::IsNullOrEmpty($vm.imgSku) -or $vm.imgOffer -notmatch '^WindowsServer$' -or $vm.imgSku -notmatch '^\\d{4}')\n\n            if ($isKnownYear) {\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 \"    [$OSYear] $($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 [regex]::Escape($OSYear)) {\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 \"    [$OSYear] $($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 $OSYear 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.1.1 - 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.1.1\" \/>\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-06T21:31:59+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-06T21:31:59+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-06T21:31:59+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-06T21:31:59+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-06T21:31:59+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-06T21:31:59+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-06 21:31:59","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\">&raquo;<\/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\">&raquo;<\/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":1,"href":"https:\/\/pariswells.com\/blog\/wp-json\/wp\/v2\/posts\/9905\/revisions"}],"predecessor-version":[{"id":9906,"href":"https:\/\/pariswells.com\/blog\/wp-json\/wp\/v2\/posts\/9905\/revisions\/9906"}],"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}]}}