Query-uitvoer 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 vanuit 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 weergegeven in Azure PowerShell-cmdlets.
U kunt alle eigenschappen ophalen met behulp van de cmdlet Format-List, of door uitvoer door te sturen 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 deze eigenschapsnamen gebruiken met Select-Object
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
De uitvoer van het gebruik van Select-Object
is altijd zo opgemaakt dat de gevraagde informatie wordt weergegeven. Zie Opmaak van Azure PowerShell-cmdlet-uitvoervoor meer informatie over het gebruik van opmaak bij het opvragen van cmdlet-resultaten.
Geneste eigenschappen selecteren
Sommige eigenschappen in de uitvoer van de Azure PowerShell-cmdlet maken gebruik van geneste objecten, zoals de eigenschap StorageProfile
van Get-AzVM
uitvoer. Als u een waarde wilt ophalen uit een geneste eigenschap, geeft u een weergavenaam en het volledige pad op voor de waarde die u wilt controleren, als onderdeel van een woordenlijstargument bij 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 de cmdlet Where-Object
kunt u het resultaat filteren op basis van een eigenschapswaarde, inclusief geneste eigenschappen. In het volgende voorbeeld ziet u hoe u Where-Object
gebruikt om de Virtuele Linux-machines in een resourcegroep te 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
naar Where-Object
doorsturen. Voor prestatiedoeleinden is het altijd raadzaam om de Where-Object
bewerking vóór 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
Azure PowerShell