Compartir a través de


Salida de consulta de Azure PowerShell

Los resultados de cada cmdlet de Azure PowerShell son un objeto de Azure PowerShell. Incluso los cmdlets que no son operaciones de tipo Get- explícitamente pueden devolver un valor que se puede inspeccionar para proporcionar información sobre un recurso que se creó o modificó. Aunque la mayoría de los cmdlets devuelven un solo objeto, algunos devuelven una matriz que se debe recorrer en iteración.

Normalmente, se consulta la salida de Azure PowerShell con el cmdlet Select-Object. La salida se puede filtrar con Where-Object.

Selección de propiedades simples

En el formato de tabla predeterminado, los cmdlets de Azure PowerShell no muestran todas sus propiedades disponibles. Puede obtener las propiedades completas mediante el cmdlet Format-List o canalizando la salida a :

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

Una vez que conozca los nombres de las propiedades que le interesan, puede usar esos nombres de propiedad con Select-Object para obtenerlos directamente:

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

La salida generada por el uso de Select-Object siempre está formateada para mostrar la información solicitada. Para más información sobre el uso del formato como parte de la consulta de resultados del cmdlet, consulte Formato de la salida de los cmdlets de Azure PowerShell.

Selección de propiedades anidadas

Algunas propiedades en la salida de los cmdlets de Azure PowerShell utilizan objetos anidados, como la propiedad StorageProfile en la salida de Get-AzVM. Para obtener el valor de una propiedad anidada, proporcione un nombre para mostrar y la ruta de acceso completa al valor que desea inspeccionar como parte de un argumento de diccionario en Select-Object:

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

Cada argumento de diccionario selecciona una propiedad del objeto . La propiedad que se va a extraer debe formar parte de una expresión.

Filtrar resultados

El cmdlet Where-Object permite filtrar el resultado en función de los valores de una propiedad, incluidas las propiedades anidadas. En el ejemplo siguiente se muestra cómo usar Where-Object para buscar las máquinas virtuales Linux en un grupo de recursos.

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

Puede canalizar los resultados de Select-Object y Where-Object entre sí. Para fines de rendimiento, siempre se recomienda colocar la operación de Where-Object antes de 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