Sorgu çıktısı Azure PowerShell

Her bir Azure PowerShell cmdlet'in sonuçları, Azure PowerShell nesnedir. Açıkça işlem olmayan cmdlet'ler bile, oluşturulmuş veya değiştirilmiş bir kaynakla ilgili bilgi vermek için inceletilecek Get- bir değer dönüşmesini sağlar. Çoğu cmdlet'ler tek bir nesne döndürürken, bazıları üzerinden geçen bir dizi döndürür.

Hemen her durumda, nesne seçme cmdlet'iyle Azure PowerShell çıkışını sorgularsiniz. Çıkış, Where-Object ile filtrelenmiş olabilir.

Basit özellikleri seçme

Varsayılan tablo biçiminde, Azure PowerShell cmdlet'ler kullanılabilir özelliklerinin hepsini görüntülemez. Format-List cmdlet'ini veya piping çıkışını kullanarak tüm özellikleri elde etmek Select-Object -Property * için:

Get-AzVM -Name TestVM -ResourceGroupName TestGroup |
  Select-Object -Property *
ResourceGroupName        : TESTGROUP
Id                       : /subscriptions/711d8ed1-b888-4c52-8ab9-66f07b87eb6b/resourceGroups/TESTGROUP/providers/Micro
                           soft.Compute/virtualMachines/TestVM
VmId                     : 711d8ed1-b888-4c52-8ab9-66f07b87eb6b
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                : 711d8ed1-b888-4c52-8ab9-66f07b87eb6b
StatusCode               : OK

İlgilenilen özelliklerin adlarını bir kez biliyorsanız, doğrudan almak için bu özellik Select-Object adlarını kullanabilirsiniz:

Get-AzVM -Name TestVM -ResourceGroupName TestGroup |
  Select-Object -Property Name, VmId, ProvisioningState
Name   VmId                                 ProvisioningState
----   ----                                 -----------------
TestVM 711d8ed1-b888-4c52-8ab9-66f07b87eb6b Succeeded

Kullanımından çıkışı Select-Object her zaman istenen bilgileri görüntülemek için biçimlendirilen çıktıdır. Cmdlet sonuçlarını sorgulamanın bir parçası olarak biçimlendirmeyi kullanma hakkında bilgi edinmek için bkz. Azure PowerShell cmdlet çıktısını biçimlendirme.

İç içe özellikleri seçme

cmdlet Azure PowerShell özelliklerinde, çıktı özelliği gibi iç StorageProfile içe nesneler Get-AzVM kullanılır. İç içe bir özellikten değer almak için, sözlük bağımsız değişkeninin bir parçası olarak incelemek istediğiniz değerin tam yolunu ve bir görünen ad Select-Object girin:

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

Her sözlük bağımsız değişkeni nesneden bir özellik seçer. Ayıklanan özellik bir ifadenin parçası olmalı.

Sonuçları filtreleme

Where-ObjectCmdlet, iç içe özellikler dahil olmak üzere herhangi bir özellik değerine göre sonucu filtrelemeye olanak sağlar. Sonraki örnekte, bir kaynak grubunda Where-Object Linux vm'leri bulmak için nasıl kullanabileceğiniz gösterilmektedir.

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

Sonuçları birbirine ve sonra Select-Object Where-Object da başka bir maddeye iletirsiniz. Performansla ilgili olarak, her zaman işlemi şu önce koymak Where-Object Select-Object önerilir:

Get-AzVM -ResourceGroupName TestGroup |
  Where-Object {$_.StorageProfile.OsDisk.OsType -eq 'Linux'} |
  Select-Object -Property Name, VmID, ProvisioningState
Name    VmId                                 ProvisioningState
----    ----                                 -----------------
TestVM  711d8ed1-b888-4c52-8ab9-66f07b87eb6  Succeeded
TestVM2 cbcee769-dd78-45e3-a14d-2ad11c647d0  Succeeded