Azure PowerShell'in çıkışını sorgulama
Tüm Azure PowerShell cmdlet'lerinin sonuçları birer Azure PowerShell nesnesidir. Açıkça Get-
işlemleri olmayan cmdlet'ler bile, oluşturulmuş veya değiştirilmiş olan kaynak hakkında bilgi vermek için incelenebilecek bir değer döndürür. Cmdlet'lerin çoğu tek bir nesne döndürse de, bazıları yinelenmesi gereken bir dizi döndürür.
Genellikle, Select-Object cmdlet'iyle Azure PowerShell'den çıktıyı sorgularsınız. Çıkış Where-Object ile filtrelenebilir.
Basit özellikleri seçme
Varsayılan tablo biçiminde, Azure PowerShell cmdlet'leri tüm kullanılabilir özelliklerini görüntülemez.
Format-List cmdlet'ini kullanarak veya çıkışını öğesine Select-Object -Property *
getirerek tam özellikleri alabilirsiniz:
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
İlgilendiğiniz özelliklerin adını öğrendikten sonra, bu özellik adlarını Select-Object
ile kullanarak bunları doğrudan alabilirsiniz:
Get-AzVM -Name TestVM -ResourceGroupName TestGroup |
Select-Object -Property Name, VmId, ProvisioningState
Name VmId ProvisioningState
---- ---- -----------------
TestVM 00000000-0000-0000-0000-000000000000 Succeeded
Select-Object
kullanılarak alınan çıkış her zaman istenen bilgileri görüntüleyecek şekilde biçimlendirilir. Cmdlet sonuçlarını sorgulama kapsamında biçimlendirmeyi kullanmayı öğrenmek için bkz. Azure PowerShell cmdlet'inin çıkışını biçimlendirme.
İç içe özellikleri seçme
Azure PowerShell cmdlet'inin çıkışındaki bazı özellikler (Get-AzVM
çıkışının StorageProfile
özelliği gibi) iç içe nesneler kullanır. İç içe özellikten bir değer almak için, Select-Object
cmdlet'inde dictionary bağımsız değişkeninin parçası olarak incelemek istediğiniz değerin görünen adını ve tam yolunu sağlayın:
Get-AzVM -ResourceGroupName TestGroup |
Select-Object -Property Name, @{label='OSType'; expression={$_.StorageProfile.OSDisk.OSType}}
Name OSType
---- ------
TestVM Linux
TestVM2 Linux
WinVM Windows
Her dictionary bağımsız değişkeni nesneden bir özellik seçer. Ayıklanacak olan özellik ifadenin bir parçası olmalıdır.
Sonuçları filtrele
Where-Object
cmdlet’i, sonucu iç içe özellikler de dahil olmak üzere herhangi bir özellik değerine göre filtrelemenize imkan tanır. Sonraki örnekte, kaynak grubunda Linux VM'lerini bulmak için Where-Object
öğesinin nasıl kullanıldığı gösterilir.
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
Select-Object
ile Where-Object
işlemlerinin sonuçlarını birbirine yönlendirebilirsiniz. Performans açısından, her zaman Where-Object
işleminin Select-Object
işleminden önce kullanılması önerilir:
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