Az Azure PowerShell lekérdezésének kimenete

Az egyes Azure PowerShell-parancsmagok eredménye egy-egy Azure PowerShell-objektum. Még azok a parancsmagok is, amelyek nem kifejezetten Get- műveletek, visszaadhatnak egy megvizsgálható értéket, amely egy létrehozott vagy módosított erőforrásról nyújt információt. Bár a legtöbb parancsmag egyetlen objektumot ad vissza, némelyikük egy tömböt, amelyen végig kell haladni.

Az Azure PowerShell kimenetét általában a Select-Object parancsmaggal kérdezi le. A kimenet a Where-Object használatával szűrhető.

Egyszerű tulajdonságok kiválasztása

Az alapértelmezett táblázatformátumban az Azure PowerShell-parancsmagok nem jelenítik meg az összes elérhető tulajdonságukat. A teljes tulajdonságokat a Format-List parancsmaggal, vagy a következőre pipelheti a kimenetet 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

Ha már tudja azoknak a tulajdonságoknak a nevét, amelyekre kíváncsi, ezeket a tulajdonságneveket közvetlenül lekérheti a Select-Object használatával:

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

A Select-Object kimenete mindig úgy van formázva, hogy a kért adatokat jelenítse meg. Ha többet szeretne megtudni arról, hogyan használható a formázás a parancsmagok által visszaadott eredmények lekérdezésének részeként, tekintse meg az Azure PowerShell-parancsmag kimenetének formázása című részt.

Beágyazott tulajdonságok kiválasztása

Az Azure PowerShell-parancsmagok kimenetének néhány tulajdonsága beágyazott objektumokat használ. Ilyen például a Get-AzVM kimenet StorageProfile tulajdonsága. A beágyazott tulajdonság értékének lekéréséhez adja meg a megjelenítendő nevet és a megvizsgálni kívánt érték teljes elérési útvonalát a Select-Object parancshoz tartozó szótárargumentum részeként:

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

Minden szótárargumentum az objektum egy tulajdonságát választja ki. A kinyerni kívánt tulajdonságnak egy kifejezés részének kell lennie.

Szűrés eredményei

A Where-Object parancsmag használatával bármely tulajdonságérték alapján szűrheti az eredményeket, a beágyazott tulajdonságokat is beleértve. A következő példa bemutatja, hogyan használható a Where-Object egy Linux rendszerű virtuális gép megkeresésére egy erőforráscsoportban.

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

A Select-Object és a Where-Object eredményeit továbbíthatja az egyiktől a másiknak. A teljesítményt szem előtt tartva ajánlott a Where-Object műveletet a Select-Object elé helyezni:

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