Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I risultati di ogni cmdlet Azure PowerShell sono un oggetto Azure PowerShell. Anche i cmdlet che non sono operazioni esplicite Get- potrebbero restituire un valore che può essere controllato, per fornire informazioni su una risorsa creata o modificata. Mentre la maggior parte dei cmdlet restituisce un singolo oggetto, alcuni restituiscono una matrice che deve essere iterata.
In genere, si esegue una query sull'output di Azure PowerShell con il cmdlet Select-Object. L'output può essere filtrato con Where-Object.
Selezionare le proprietà semplici
Nel formato di tabella predefinito, Azure PowerShell cmdlet non visualizzano tutte le proprietà disponibili.
È possibile ottenere le proprietà complete usando il cmdlet Format-List o reindirizzando l'output in 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
Dopo aver appreso i nomi delle proprietà a cui si è interessati, è possibile usare tali nomi di proprietà per Select-Object ottenerli direttamente:
Get-AzVM -Name TestVM -ResourceGroupName TestGroup |
Select-Object -Property Name, VmId, ProvisioningState
Name VmId ProvisioningState
---- ---- -----------------
TestVM 00000000-0000-0000-0000-000000000000 Succeeded
L'output risultante dall'uso di Select-Object è sempre formattato per visualizzare le informazioni richieste. Per informazioni sull'uso della formattazione come parte dei risultati dei cmdlet di query, vedere Format Azure PowerShell cmdlet output.
Selezionare le proprietà annidate
Alcune proprietà nell'output del cmdlet Azure PowerShell usano oggetti annidati, ad esempio la proprietà StorageProfile dell'output Get-AzVM. Per ottenere un valore da una proprietà annidata, specificare un nome di visualizzazione e il percorso completo del valore da esaminare come parte di un argomento del dizionario in Select-Object.
Get-AzVM -ResourceGroupName TestGroup |
Select-Object -Property Name, @{label='OSType'; expression={$_.StorageProfile.OSDisk.OSType}}
Name OSType
---- ------
TestVM Linux
TestVM2 Linux
WinVM Windows
Ogni argomento del dizionario seleziona una proprietà dall'oggetto . La proprietà da estrarre deve far parte di un'espressione.
Filtrare i risultati
Il Where-Object cmdlet consente di filtrare il risultato in base a qualsiasi valore della proprietà, incluse le proprietà annidate. L'esempio seguente illustra come usare Where-Object per trovare le macchine virtuali Linux in un gruppo di risorse.
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
È possibile inviare tramite pipe i risultati di Select-Object e Where-Object tra loro. Ai fini delle prestazioni, è sempre consigliabile inserire l'operazione Where-Object prima Select-Objectdi :
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