internal/Search-AzGraph2.ps1

function Search-AzGraph2 {
    <#
    .SYNOPSIS
    Function similar to Search-AzGraph, but with pagination support.
 
    .DESCRIPTION
    Function similar to Search-AzGraph, but with pagination support.
 
    .PARAMETER query
    KQL query to run against Azure Resource Manager.
 
    .PARAMETER scopedSearch
    If specified, the function will search only across the current subscription.
 
    By default, the function searches across all subscriptions in the tenant.
 
    .EXAMPLE
    Search-AzGraph2 -query 'resources
    | where type =~ "microsoft.keyvault/vaults"
    | extend accessPolicies = properties.accessPolicies
    | where isnotnull(accessPolicies) and array_length(accessPolicies) > 0
    | project name, resourceGroup, subscriptionId, accessPolicies'
    #>


    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        [string] $query,

        [switch] $scopedSearch
    )

    $content = @{
        query = $query
        subscriptions = @()
        options = @{
            '$top'=1000
            resultFormat = "objectArray"
        }
    }

    if ($scopedSearch) {
        $currentSubscription = (Get-AzContext).Subscription
        Write-Verbose "Searching only across current subscription '$($currentSubscription.Name)' ($($currentSubscription.Id))"
        $content.subscriptions = $currentSubscription.Id
    } else {
        Write-Verbose "Searching across all subscriptions in the tenant"
    }

    New-AzureBatchRequest -method POST -url "https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01" -content $content | Invoke-AzureBatchRequest
}