Public/PartnerCenter/Get-PartnerCustomer.ps1
function Get-PartnerCustomer { [CmdletBinding()] param( [Parameter()] [string]$CustomerTenantId, [Parameter()] [string]$DefaultDomainName ) try { <# Connect-CustomerGraph -CustomerTenantId $Script:config.PartnerTenantId -FlowType Delegated $customers = Get-MgContract -All if($CustomerTenantId) { return $customers | Where-Object { $_.CustomerId -eq $CustomerTenantId } } else { return $customers } #> $requestUri = "https://api.partnercenter.microsoft.com/v1/customers?size=1000" if($DefaultDomainName) { $filter = '{"Field":"DefaultDomainName","Value":"' + $DefaultDomainName + '","Operator":"starts_with"}' $requestUri += "&filter=" + [System.Web.HttpUtility]::UrlEncode($filter) } # Get all customers $response = Invoke-PartnerCenterRequest -Uri $requestUri -Method Get $Customers = $response.items if($response.links.next) { $nextUri = $response.links.next.uri $nextHeaders = $response.links.next.headers $headersHashtable = @{} foreach ($header in $nextHeaders) { $headersHashtable[$header.key] = $header.value } do { $response = Invoke-PartnerCenterRequest -Uri "https://api.partnercenter.microsoft.com/v1$($nextUri)" -Method Get -Headers $headersHashtable $Customers += $response.items } while ($response.links.next) } if($CustomerTenantId) { $Customers = $Customers | Where-Object { $_.id -eq $CustomerTenantId } } return $Customers } catch { throw [TokenOperationException]::new( 'PartnerCenter', "Failed to get customer information: $($_.Exception.Message)", $_ ) } } |