Consultar a saída do Azure PowerShell

Os resultados de cada cmdlet do Azure PowerShell são um objeto do Azure PowerShell. Até os cmdlets que não são explicitamente operações Get- podem devolver um valor que pode ser inspecionado, para fornecer informações sobre um recurso que foi criado ou modificado. Embora a maioria dos cmdlets devolva um único objeto, alguns devolvem uma matriz que deve ser iterada.

Normalmente, você consulta a saída do Azure PowerShell com o cmdlet Select-Object . A saída pode ser filtrada com Where-Object.

Selecionar propriedades simples

No formato de tabela padrão, os cmdlets do Azure PowerShell não exibem todas as suas propriedades disponíveis. Você pode obter as propriedades completas usando o cmdlet Format-List ou canalizando a saída para Select-Object -Property *:

Get-AzVM -Name TestVM -ResourceGroupName TestGroup |
  Select-Object -Property *
ResourceGroupName        : TESTGROUP
Id                       : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TESTGROUP/providers/Micro
                           soft.Compute/virtualMachines/TestVM
VmId                     : 00000000-0000-0000-0000-000000000000
Name                     : TestVM
Type                     : Microsoft.Compute/virtualMachines
Location                 : westus2
LicenseType              :
Tags                     : {}
AvailabilitySetReference :
DiagnosticsProfile       :
Extensions               : {}
HardwareProfile          : Microsoft.Azure.Management.Compute.Models.HardwareProfile
InstanceView             :
NetworkProfile           : Microsoft.Azure.Management.Compute.Models.NetworkProfile
OSProfile                : Microsoft.Azure.Management.Compute.Models.OSProfile
Plan                     :
ProvisioningState        : Succeeded
StorageProfile           : Microsoft.Azure.Management.Compute.Models.StorageProfile
DisplayHint              : Compact
Identity                 :
Zones                    : {}
FullyQualifiedDomainName :
AdditionalCapabilities   :
RequestId                : 00000000-0000-0000-0000-000000000000
StatusCode               : OK

Quando souber os nomes das propriedades em que está interessado, pode utilizar esses nomes de propriedades com Select-Object para obtê-los diretamente:

Get-AzVM -Name TestVM -ResourceGroupName TestGroup |
  Select-Object -Property Name, VmId, ProvisioningState
Name   VmId                                 ProvisioningState
----   ----                                 -----------------
TestVM 00000000-0000-0000-0000-000000000000 Succeeded

A saída resultante da utilização de Select-Object é sempre formatada para apresentar as informações pedidas. Para saber mais sobre como utilizar a formatação como parte da consulta de resultados de cmdlet, veja Formatar a saída de cmdlet do Azure PowerShell.

Selecionar propriedades aninhadas

Algumas propriedades na saída de cmdlet do Azure PowerShell utilizam objetos aninhados, como a propriedade StorageProfile da saída Get-AzVM. Para obter um valor de uma propriedade aninhada, forneça um nome a apresentar e o caminho completo para o valor que quer inspecionar como parte de um argumento de dicionário para Select-Object:

Get-AzVM -ResourceGroupName TestGroup |
  Select-Object -Property Name, @{label='OSType'; expression={$_.StorageProfile.OSDisk.OSType}}
Name     OSType
----     ------
TestVM    Linux
TestVM2   Linux
WinVM   Windows

Cada argumento de dicionário seleciona uma propriedade do objeto. A propriedade a extrair tem de fazer parte de uma expressão.

Filtrar resultados

O cmdlet Where-Object permite-lhe filtrar o resultado com base em qualquer valor de propriedade, incluindo propriedades aninhadas. O exemplo seguinte mostra como utilizar Where-Object para encontrar as VMs do Linux num grupo de recursos.

Get-AzVM -ResourceGroupName TestGroup |
  Where-Object {$_.StorageProfile.OSDisk.OSType -eq 'Linux'}
ResourceGroupName    Name Location          VmSize OsType        NIC ProvisioningState Zone
-----------------    ---- --------          ------ ------        --- ----------------- ----
TestGroup          TestVM  westus2 Standard_D2s_v3  Linux  testvm299         Succeeded
TestGroup         TestVM2  westus2 Standard_D2s_v3  Linux testvm2669         Succeeded

Pode encaminhar os resultados de Select-Object e Where-Object entre um e outro. Por motivos de desempenho, recomendamos sempre que coloque a operação Where-Object antes de Select-Object:

Get-AzVM -ResourceGroupName TestGroup |
  Where-Object {$_.StorageProfile.OsDisk.OsType -eq 'Linux'} |
  Select-Object -Property Name, VmID, ProvisioningState
Name    VmId                                  ProvisioningState
----    ----                                  -----------------
TestVM  00000000-0000-0000-0000-000000000000  Succeeded
TestVM2 00000000-0000-0000-0000-000000000000  Succeeded