Freigeben über


Abfrageausgabe von Azure PowerShell

Das Ergebnis eines Azure PowerShell-Cmdlets ist ein Azure PowerShell-Objekt. Auch Cmdlets, die keine expliziten Get--Vorgänge sind, können einen Wert zurückgeben, der überprüft werden kann, um Informationen zu einer erstellten oder geänderten Ressource zu erhalten. Während die meisten Cmdlets ein einzelnes Objekt zurückgeben, geben einige ein Array zurück, das durchlaufen werden soll.

In der Regel wird die Ausgabe von Azure PowerShell mit dem Cmdlet Select-Object abgefragt. Die Ausgabe kann mit Where-Object gefiltert werden.

Auswählen einfacher Eigenschaften

Im Standardtabellenformat zeigen Azure PowerShell-Cmdlets nicht alle verfügbaren Eigenschaften an. Sie können die vollständigen Eigenschaften mithilfe des Cmdlets Format-List oder durch Weiterleiten der Ausgabe an Select-Object -Property * abrufen:

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

Wenn Ihnen die Namen der für Sie relevanten Eigenschaften bekannt sind, können Sie diese Eigenschaftennamen mit Select-Object verwenden, um sie direkt abzurufen:

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

Die Ausgabe durch Select-Object wird stets so formatiert, dass die angeforderten Informationen angezeigt werden. Informationen zur Nutzung der Formatierung als Teil der Abfrageergebnisse von Cmdlets finden Sie unter Formatierung der Ergebnisse von Azure PowerShell-Cmdlets.

Auswählen geschachtelter Eigenschaften

Einige Eigenschaften in der Azure PowerShell-Cmdlet-Ausgabe verwenden Objekte in geschachtelter Form, wie die StorageProfile-Eigenschaft der Get-AzVM-Ausgabe. Um einen Wert aus einer geschachtelten Eigenschaft abzurufen, geben Sie einen Anzeigenamen und den vollständigen Pfad des Werts an, den Sie als Teil eines Wörterbucharguments für Select-Object überprüfen möchten:

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

Jedes Wörterbuchargument wählt eine Eigenschaft aus dem Objekt aus. Die zu extrahierende Eigenschaft muss Teil eines Ausdrucks sein.

Ergebnisse filtern

Mit dem Cmdlet Where-Object können Sie das Ergebnis basierend auf einem beliebigen Eigenschaftswert filtern, einschließlich geschachtelter Eigenschaften. Das nächste Beispiel zeigt, wie Sie Where-Object verwenden, um die Linux-VMs in einer Ressourcengruppe zu finden.

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

Die Ergebnisse von Select-Object und Where-Object können aneinander weitergeleitet werden. Aus Leistungsgründen wird empfohlen, den Where-Object-Vorgang immer vor Select-Object zu platzieren:

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