Azure PowerShell 쿼리 출력
각 Azure PowerShell cmdlet의 결과는 Azure PowerShell 개체입니다. 명시적 Get-
작업이 아닌 cmdlet도 생성되거나 수정된 리소스에 대한 정보를 제공하기 위해 검사할 수 있는 값을 반환할 수 있습니다. 대부분의 cmdlet은 단일 개체를 반환하지만 일부는 반복되어야 하는 배열을 반환합니다.
일반적으로 Select-Object cmdlet을 사용하여 Azure PowerShell의 출력을 쿼리합니다. 출력은 Where-object를 사용하여 필터링할 수 있습니다.
단순 속성 선택
기본 테이블 형식에서, Azure PowerShell cmdlet은 사용 가능한 속성을 모두 표시하지는 않습니다.
Format-list cmdlet을 사용하거나 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
관심있는 속성의 이름을 알게되면 Select-Object
와 같은 속성 이름을 사용하여 직접 가져올 수 있습니다.
Get-AzVM -Name TestVM -ResourceGroupName TestGroup |
Select-Object -Property Name, VmId, ProvisioningState
Name VmId ProvisioningState
---- ---- -----------------
TestVM 00000000-0000-0000-0000-000000000000 Succeeded
Select-Object
를 사용한 출력은 항상 요청된 형식을 표시하도록 서식 지정됩니다. 쿼리 결과를 cmdlet 결과의 일부로 사용하는 방법에 대한 자세한 내용은 Azure PowerShell cmdlet 출력 형식을 참조하세요.
중첩 속성 선택
Azure PowerShell cmdlet 출력의 일부 속성은 Get-AzVM
출력의 StorageProfile
속성과 같은 중첩된 개체를 사용합니다. 중첩 된 속성에서 값을 가져오려면, Select-Object
에 대한 사전 인수의 일부로 검사할 값의 전체 경로 및 표시 이름을 제공하세요.
Get-AzVM -ResourceGroupName TestGroup |
Select-Object -Property Name, @{label='OSType'; expression={$_.StorageProfile.OSDisk.OSType}}
Name OSType
---- ------
TestVM Linux
TestVM2 Linux
WinVM Windows
각 사전 인수는 개체의 한 속성을 선택합니다. 추출할 속성은 식의 일부여야 합니다.
결과 필터링
Where-Object
cmdlet을 사용하면 중첩 속성을 포함하여 속성 값에 기반하여 결과를 필터링할 수 있습니다. 다음 예제는 Where-Object
를 사용하여 리소스 그룹에서 Linux VM을 찾는 방법을 보여줍니다.
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
, Where-Object
의 결과를 각각으로 파이프할 수 있습니다. 성능 향상을 위해, Where-Object
작업을 Select-Object
전에 두는 것이 좋습니다.
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