Výstup dotazů Azure PowerShellu

Výsledky jednotlivých rutin Azure PowerShellu jsou objektem Azure PowerShellu. Dokonce i rutiny, které nejsou explicitně operací Get-, můžou vrátit hodnotu, kterou jde zkontrolovat, aby se získaly informace o prostředku, který se vytvořil nebo změnil. Zatímco většina rutin vrací jeden objekt, některé vrací pole, ve kterém se musí provést iterace.

Obvykle se dotazujete na výstup z Azure PowerShellu pomocí rutiny Select-Object . Výstup lze filtrovat pomocí where-object.

Výběr jednoduchých vlastností

Ve výchozím formátu tabulky nezobrazují rutiny Azure PowerShellu všechny dostupné vlastnosti. Úplné vlastnosti můžete získat pomocí rutiny Format-List nebo pomocí výstupu: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

Jakmile budete znát názvy vlastností, které vás zajímají, můžete použít tyto názvy vlastností s rutinou Select-Object, abyste je zobrazili přímo:

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

Výstup z rutiny Select-Object je vždycky formátovaný, aby zobrazil požadované informace. Další informace o použití formátování jako součásti dotazů na výsledky rutin najdete v popisu formátování výstupu rutin Azure Powershellu.

Výběr vnořených vlastností

Některé vlastnosti ve výstupu rutin Azure PowerShellu používají vnořené objekty, jako je vlastnost StorageProfile výstupu Get-AzVM. Když chcete získat hodnotu z vnořené vlastnosti, zadejte zobrazovaný název a úplnou cestu k hodnotě, kterou chcete zkontrolovat, jako součást argumentu slovníku pro Select-Object:

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

Každý argument slovníku vybere z objektu jednu vlastnost. Extrahovaná vlastnost musí být součástí výrazu.

Filtrování výsledků

Rutina Where-Object umožňuje filtrování výsledků na základě kterékoli hodnoty vlastnosti, včetně vnořených vlastností. Následující příklad ukazuje způsob použití rutiny Where-Object k vyhledání virtuálních počítačů s Linuxem ve skupině prostředků.

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

Výsledky si mohou rutiny Select-Object a Where-Object vzájemně předávat. Z hlediska výkonu se vždy doporučuje umístit operaci Where-Object před 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