Queryuitvoer van Azure PowerShell
De resultaten van elke Azure PowerShell-cmdlet zijn een Azure PowerShell-object. Zelfs cmdlets die niet expliciet een Get--bewerking zijn, kunnen een waarde retourneren die kan worden geïnspecteerd om informatie te geven over een resource die is gemaakt of bewerkt. Hoewel de meeste cmdlets een enkel object retourneren, retourneren sommige een matrix die moet worden herhaald.
In bijna alle gevallen voert u query's uit Azure PowerShell uit met de cmdlet Select-Object. Uitvoer kan worden gefilterd met Where-Object.
Eenvoudige eigenschappen selecteren
In de standaard tabelindeling tonen Azure PowerShell-cmdlets niet alle beschikbare eigenschappen. U kunt de volledige eigenschappen ophalen met behulp van de cmdlet Format-List , of door uitvoer door te leiden naar 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 de namen van deze eigenschappen gebruiken in combinatie met Select-Object om deze 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
De uitvoer wordt wanneer u Select-Object gebruikt altijd zodanig ingedeeld dat de aangevraagde informatie wordt weergegeven. Zie voor meer informatie over het gebruik van opmaak bij het uitvoeren van query's op cmdlet-resultaten Format Azure PowerShell cmdlet output (Uitvoer van Azure PowerShell-cmdlet opmaken).
Geneste eigenschappen selecteren
Sommige eigenschappen in de uitvoer van Azure PowerShell-cmdlet gebruiken geneste objecten, zoals de eigenschap StorageProfile van de uitvoer van Get-AzVM. Als u een waarde uit een geneste eigenschap wilt ophalen, geeft u als onderdeel van een woordenlijstargument voor Select-Object een weergavenaam en het volledige pad op naar de waarde die u wilt controleren:
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 van het object. De op te halen eigenschap moet deel uitmaken van een expressie.
Resultaten filteren
Met de cmdlet Where-Object kunt u het resultaat op basis van een eigenschapswaarde filteren, inclusief geneste eigenschappen. In het volgende voorbeeld ziet u hoe u Where-Object kunt gebruiken om Linux VM's te zoeken in een resourcegroep.
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 doorsluizen. Voor de beste prestaties raden we aan de bewerking Where-Object altijd voor Select-Object te plaatsen:
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