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