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