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
Azure PowerShell