Saída de consulta do Azure PowerShell
Os resultados de cada cmdlet do Azure PowerShell são um objeto do Azure PowerShell. Até mesmo cmdlets que não são explicitamente operações Get-
podem retornar um valor inspecionável, oferecendo informações sobre um recurso que foi criado ou modificado. Enquanto a maioria dos cmdlets retorna um único objeto, alguns retornam 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
Depois de saber os nomes das propriedades em que você está interessado, você pode usar esses nomes de propriedade 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 do uso de Select-Object
é sempre formatada para exibir as informações solicitadas. Para saber mais sobre como usar a formatação como parte da consulta de resultados do cmdlet, consulte Formatar saída de cmdlet do Azure PowerShell.
Selecionar propriedades aninhadas
Algumas propriedades na saída do cmdlet do Azure PowerShell usam objetos aninhados, como a propriedade StorageProfile
da saída Get-AzVM
. Para obter um valor de uma propriedade aninhada, forneça um nome de exibição e o caminho completo para o valor que você deseja 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 ser extraída deve fazer parte de uma expressão.
Filtrar resultados
O cmdlet Where-Object
permite filtrar o resultado baseado em qualquer valor de propriedade, incluindo propriedades aninhadas. O exemplo a seguir mostra como usar Where-Object
para localizar as VMs do Linux em um 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
Você pode canalizar os resultados de Select-Object
e Where-Object
uns para os outros. Para fins de desempenho, é sempre recomendável colocar a operação de 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
Azure PowerShell