次の方法で共有


クイックスタート: Azure PowerShell を使用して Resource Graph クエリ結果の改ページ位置を自動修正する

このクイックスタートでは、Azure PowerShell を使用して Azure Resource Graph クエリを実行し、出力の改ページ位置を自動修正する方法について説明します。 既定では、Azure Resource Graph からクエリごとに最大 1,000 個のレコードが返されます。 Search-AzGraph コマンドレットの skipToken パラメータを使用すると、要求ごとに返されるレコードの件数を調整できます。

前提条件

モジュールをインストールする

Azure PowerShell を使用して Azure Resource Graph クエリを実行できるように、Az.ResourceGraph モジュールをインストールします。 Azure Resource Graph モジュールには、PowerShellGet バージョン 2.0.1 以降が必要です。 最新バージョンの PowerShell と Azure PowerShell をインストールした場合は、必要なバージョンが既にあります。

  1. PowerShellGet のバージョンを確認します。

    Get-Module -Name PowerShellGet
    

    更新する必要がある場合は、PowerShellGet に移動します。

  2. モジュールをインストールします。

    Install-Module -Name Az.ResourceGraph -Repository PSGallery -Scope CurrentUser
    

    このコマンドは、CurrentUser スコープにモジュールをインストールします。 AllUsers スコープにインストールする必要がある場合は、管理 PowerShell セッションからインストールを実行します。

  3. モジュールがインストールされたことを確認します。

    Get-Command -Module Az.ResourceGraph -CommandType Cmdlet
    

    このコマンドは、Search-AzGraph コマンドレットのバージョンを表示し、モジュールを PowerShell セッションに読み込みます。

Azure に接続する

Visual Studio Code ターミナル セッションから Azure に接続します。 複数のサブスクリプションがある場合は、コマンドを実行してコンテキストをサブスクリプションに設定します。 <subscriptionID> は、Azure サブスクリプション ID に置き換えてください。

Connect-AzAccount

# Run these commands if you have multiple subscriptions
Get-AzSubScription
Set-AzContext -Subscription <subscriptionID>

Azure Resource Graph クエリ結果の改ページ位置を自動修正する

この例では、テナントベースの Resource Graph クエリを実行して仮想マシンのリストを返してから、コマンドを更新して、要求ごとに 5 つのレコードをバッチ処理する結果を返します。

例ごとに同じクエリが使用されます。

Resources |
join kind=leftouter (ResourceContainers | where type=='microsoft.resources/subscriptions' |
  project subscriptionName = name, subscriptionId)
  on subscriptionId |
where type =~ 'Microsoft.Compute/virtualMachines' |
project VMResourceId = id, subscriptionName, resourceGroup, name

Search-AzGraph コマンドは、特定の Azure テナントに関連付けられているすべてのサブスクリプションを対象に、すべての仮想マシンのリストを返すクエリを実行します。

Search-AzGraph -Query "Resources | join kind=leftouter (ResourceContainers | where
type=='microsoft.resources/subscriptions' | project subscriptionName = name, subscriptionId) on
subscriptionId | where type =~ 'Microsoft.Compute/virtualMachines' | project VMResourceId = id,
subscriptionName, resourceGroup, name"

次の手順では、Search-AzGraph コマンドを更新して、バッチ要求ごとに 5 つのレコードを返します。 このコマンドは、while ループ、変数、skipToken パラメータを使用します。

$kqlQuery = "Resources | join kind=leftouter (ResourceContainers | where
type=='microsoft.resources/subscriptions' | project subscriptionName = name, subscriptionId) on
subscriptionId | where type =~ 'Microsoft.Compute/virtualMachines' | project VMResourceId = id,
subscriptionName, resourceGroup, name"

$batchSize = 5
$skipResult = 0

[System.Collections.Generic.List[string]]$kqlResult

while ($true) {

  if ($skipResult -gt 0) {
    $graphResult = Search-AzGraph -Query $kqlQuery -First $batchSize -SkipToken $graphResult.SkipToken
  }
  else {
    $graphResult = Search-AzGraph -Query $kqlQuery -First $batchSize
  }

  $kqlResult += $graphResult.data

  if ($graphResult.data.Count -lt $batchSize) {
    break;
  }
  $skipResult += $skipResult + $batchSize
}

リソースをクリーンアップする

PowerShell セッションから Az.ResourceGraph モジュールを削除するには、次のコマンドを実行します。

Remove-Module -Name Az.ResourceGraph

コンピューターから Az.ResourceGraph モジュールをアンインストールするには、次のコマンドを実行します。

Uninstall-Module -Name Az.ResourceGraph

モジュール Az.ResourceGraph が現在使用されていることを示すメッセージが表示されることがあります。 その場合は、PowerShell セッションをシャットダウンし、新しいセッションを開始する必要があります。 次にコンピューターからモジュールをアンインストールするコマンドを実行します。

Azure PowerShell セッションからサインアウトするには:

Disconnect-AzAccount

次のステップ

このクイックスタートでは、Azure PowerShell を使用して Azure Resource Graph クエリ結果の改ページ位置を自動修正する方法について説明しました。 詳細については、以下の記事を参照してください。