다음을 통해 공유


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-ObjectWhere-Object의 결과를 서로 파이프할 수 있습니다. 성능을 위해 Select-Object전에 항상 Where-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