Delen via


Queryuitvoer van Azure PowerShell

De resultaten van elke Azure PowerShell cmdlet zijn een Azure PowerShell-object. Zelfs cmdlets die niet expliciet Get- bewerkingen zijn, kunnen een waarde retourneren die kan worden geïnspecteerd om informatie te geven over een resource die is gemaakt of gewijzigd. Hoewel de meeste cmdlets één object retourneren, retourneren sommige een matrix die moet worden doorlopen.

Meestal voert u query's uit uit Azure PowerShell met de cmdlet Select-Object. Uitvoer kan worden gefilterd met Where-Object.

Eenvoudige eigenschappen selecteren

In de standaardtabelindeling worden niet alle beschikbare eigenschappen van Azure PowerShell-cmdlets weergegeven. U kunt de volledige eigenschappen ophalen met behulp van de cmdlet Format-List of door de uitvoer door te geven aan 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

Zodra u de namen weet van de eigenschappen waarin u geïnteresseerd bent, kunt u deze eigenschapsnamen Select-Object gebruiken om ze rechtstreeks op te halen:

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

Uitvoer van het gebruik van Select-Object is altijd zo opgemaakt dat het de gevraagde informatie weergeeft. Zie Format Azure PowerShell cmdlet output voor meer informatie over het gebruik van opmaak als onderdeel van het uitvoeren van query's op cmdlet-resultaten.

Geneste eigenschappen selecteren

Sommige eigenschappen in Azure PowerShell cmdlet-uitvoer maken gebruik van geneste objecten, zoals de eigenschap StorageProfile van Get-AzVM-uitvoer. Als u een waarde uit een geneste eigenschap wilt ophalen, geeft u een weergavenaam en het volledige pad op naar de waarde die u wilt inspecteren, als onderdeel van een woordenboekargument voor Select-Object.

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

Elk woordenlijstargument selecteert één eigenschap in het object. De eigenschap die moet worden geëxtraheerd, moet deel uitmaken van een expressie.

Resultaten filteren

Met cmdlet Where-Object kunt u het resultaat filteren op basis van elke eigenschapswaarde, met inbegrip van geneste eigenschappen. In het volgende voorbeeld ziet u hoe u met Where-Object de Linux-VM's in een resourcegroep kunt vinden.

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

U kunt de resultaten van Select-Object en Where-Object naar elkaar doorsluisen. Voor prestatiedoeleinden is het altijd raadzaam om de Where-Object-bewerking vóór de Select-Object-bewerking uit te voeren.

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