Formatar a saída de cmdlets do Azure PowerShell
Por predefinição, cada cmdlet do Azure PowerShell formata a saída para ser fácil de ler. O PowerShell permite que converta ou formate a saída de cmdlets ao encaminhar para um dos seguintes cmdlets:
Formatação | Conversão |
---|---|
Format-Custom | ConvertTo-Csv |
Format-List | ConvertTo-Html |
Format-Table | ConvertTo-Json |
Format-Wide | ConvertTo-Xml |
A formatação é usada para exibição no console do PowerShell e a conversão é usada para gerar dados a serem consumidos por outros scripts ou programas.
Formato de saída da tabela
Por predefinição, a saída dos cmdlets do Azure PowerShell é feita no formato de tabela. Este formato não apresenta todas as informações do recurso pedido:
Get-AzVM
ResourceGroupName Name Location VmSize OsType NIC ProvisioningState Zone
----------------- ---- -------- ------ ------ --- ----------------- ----
QueryExample ExampleLinuxVM westus2 Basic_A0 Linux examplelinuxvm916 Succeeded
QueryExample RHELExample westus2 Standard_D2_v3 Linux rhelexample469 Succeeded
QueryExample WinExampleVM westus2 Standard_DS1_v2 Windows winexamplevm268 Succeeded
A quantidade de dados apresentada por Format-Table
pode ser afetada pela largura da janela da sessão do PowerShell. Para restringir a saída a propriedades específicas e ordená-las, os nomes das propriedades podem ser fornecidos como argumentos para Format-Table
:
Get-AzVM -ResourceGroupName QueryExample |
Format-Table -Property Name, ResourceGroupName, Location
Name ResourceGroupName Location
---- ----------------- --------
ExampleLinuxVM QueryExample westus2
RHELExample QueryExample westus2
WinExampleVM QueryExample westus2
Formato de saída de lista
O formato de saída de lista produz duas colunas e os nomes das propriedades, seguidos do valor. Para objetos complexos, é apresentado o tipo do objeto em alternativa.
Get-AzVM | Format-List
A saída seguinte tem alguns campos removidos.
ResourceGroupName : QueryExample
Id : /subscriptions/.../resourceGroups/QueryExample/providers/Microsoft.Compute/virtualMachines/ExampleLinuxVM
VmId : ...
Name : ExampleLinuxVM
Type : Microsoft.Compute/virtualMachines
Location : westus2
...
HardwareProfile : Microsoft.Azure.Management.Compute.Models.HardwareProfile
InstanceView :
NetworkProfile : Microsoft.Azure.Management.Compute.Models.NetworkProfile
OSProfile : Microsoft.Azure.Management.Compute.Models.OSProfile
...
StatusCode : OK
ResourceGroupName : QueryExample
Id : /subscriptions/.../resourceGroups/QueryExample/providers/Microsoft.Compute/virtualMachines/RHELExample
VmId : ...
Name : RHELExample
Type : Microsoft.Compute/virtualMachines
Location : westus2
...
Tal como Format-Table
, os nomes das propriedades podem ser fornecidos para ordenar e restringir a saída:
Get-AzVM | Format-List -Property ResourceGroupName, Name, Location
ResourceGroupName : QueryExample
Name : ExampleLinuxVM
Location : westus2
ResourceGroupName : QueryExample
Name : RHELExample
Location : westus2
ResourceGroupName : QueryExample
Name : WinExampleVM
Location : westus2
Formato de saída largo
O formato de saída largo produz apenas um nome de propriedade por consulta. É possível controlar a propriedade a apresentar ao fornecer uma propriedade como argumento.
Get-AzVM | Format-Wide
ExampleLinuxVM RHELExample
WinExampleVM
Get-AzVM | Format-Wide -Property ResourceGroupName
QueryExample QueryExample
QueryExample
Formato de saída personalizado
O tipo de saída Custom-Format
destina-se à formatação de objetos personalizados. Sem quaisquer parâmetros, ele se comporta como Format-List
, mas exibe os nomes de propriedade de classes personalizadas.
Get-AzVM | Format-Custom
A saída seguinte tem alguns campos removidos.
ResourceGroupName : QueryExample
Id : /subscriptions/.../resourceGroups/QueryExample/providers/Microsoft.Compute/virtualMachines/ExampleLinuxVM
VmId : ...
Name : ExampleLinuxVM
Type : Microsoft.Compute/virtualMachines
Location : westus2
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, LinuxConfiguration, Secrets,
AllowExtensionOperations}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
...
Ao fornecer nomes de propriedades como argumentos para Custom-Format
, os pares propriedade/valor são apresentados para objetos personalizados definidos como valores:
Get-AzVM | Format-Custom -Property Name, ResourceGroupName, Location, OSProfile
A saída seguinte tem alguns campos removidos.
class PSVirtualMachineList
{
Name = ExampleLinuxVM
ResourceGroupName = QueryExample
Location = westus2
OSProfile =
class OSProfile
{
ComputerName = ExampleLinuxVM
AdminUsername = ...
AdminPassword =
CustomData =
WindowsConfiguration =
LinuxConfiguration =
class LinuxConfiguration
{
DisablePasswordAuthentication = False
Ssh =
ProvisionVMAgent = True
}
Secrets =
[
]
AllowExtensionOperations = True
}
}
...
class PSVirtualMachineList
{
Name = WinExampleVM
ResourceGroupName = QueryExample
Location = westus2
OSProfile =
class OSProfile
{
ComputerName = WinExampleVM
AdminUsername = ...
AdminPassword =
CustomData =
WindowsConfiguration =
class WindowsConfiguration
{
ProvisionVMAgent = True
EnableAutomaticUpdates = True
TimeZone =
AdditionalUnattendContent =
WinRM =
}
LinuxConfiguration =
Secrets =
[
]
AllowExtensionOperations = True
}
}
Conversão em outros formatos de dados
A família de cmdlets ConvertTo-*
permite converter os resultados dos cmdlets do Azure PowerShell em formatos legíveis por computador. Para obter apenas algumas propriedades dos resultados do Azure PowerShell, canalize para o Select-Object
cmdlet antes de executar a conversão. Os exemplos seguintes demonstram os diferentes tipos de saída que cada conversão produz.
Conversão em CSV
Get-AzVM | ConvertTo-CSV
#TYPE Microsoft.Azure.Commands.Compute.Models.PSVirtualMachineList
"ResourceGroupName","Id","VmId","Name","Type","Location","LicenseType","Tags","AvailabilitySetReference","DiagnosticsProfile","Extensions","HardwareProfile","InstanceView","NetworkProfile","OSProfile","Plan","ProvisioningState","StorageProfile","DisplayHint","Identity","Zones","FullyQualifiedDomainName","AdditionalCapabilities","RequestId","StatusCode"
"QUERYEXAMPLE","/subscriptions/.../resourceGroups/QUERYEXAMPLE/providers/Microsoft.Compute/virtualMachines/ExampleLinuxVM","...","ExampleLinuxVM","Microsoft.Compute/virtualMachines","westus2",,"System.Collections.Generic.Dictionary`2[System.String,System.String]",,,"System.Collections.Generic.List`1[Microsoft.Azure.Management.Compute.Models.VirtualMachineExtension]","Microsoft.Azure.Management.Compute.Models.HardwareProfile",,"Microsoft.Azure.Management.Compute.Models.NetworkProfile","Microsoft.Azure.Management.Compute.Models.OSProfile",,"Succeeded","Microsoft.Azure.Management.Compute.Models.StorageProfile","Compact",,"System.Collections.Generic.List`1[System.String]",,,"...","OK"
"QUERYEXAMPLE","/subscriptions/.../resourceGroups/QUERYEXAMPLE/providers/Microsoft.Compute/virtualMachines/RHELExample","...","RHELExample","Microsoft.Compute/virtualMachines","westus2",,"System.Collections.Generic.Dictionary`2[System.String,System.String]",,,"System.Collections.Generic.List`1[Microsoft.Azure.Management.Compute.Models.VirtualMachineExtension]","Microsoft.Azure.Management.Compute.Models.HardwareProfile",,"Microsoft.Azure.Management.Compute.Models.NetworkProfile","Microsoft.Azure.Management.Compute.Models.OSProfile",,"Succeeded","Microsoft.Azure.Management.Compute.Models.StorageProfile","Compact",,"System.Collections.Generic.List`1[System.String]",,,"...","OK"
"QUERYEXAMPLE","/subscriptions/.../resourceGroups/QUERYEXAMPLE/providers/Microsoft.Compute/virtualMachines/WinExampleVM","...","WinExampleVM","Microsoft.Compute/virtualMachines","westus2",,"System.Collections.Generic.Dictionary`2[System.String,System.String]",,,"System.Collections.Generic.List`1[Microsoft.Azure.Management.Compute.Models.VirtualMachineExtension]","Microsoft.Azure.Management.Compute.Models.HardwareProfile",,"Microsoft.Azure.Management.Compute.Models.NetworkProfile","Microsoft.Azure.Management.Compute.Models.OSProfile",,"Succeeded","Microsoft.Azure.Management.Compute.Models.StorageProfile","Compact",,"System.Collections.Generic.List`1[System.String]",,,"...","OK"
Conversão em JSON
A saída JSON não expande todas as propriedades por predefinição. Para alterar a profundidade das propriedades expandidas, use o Depth
parâmetro. Por predefinição, a profundidade de expansão é 2
.
Get-AzVM | ConvertTo-JSON
A saída seguinte tem alguns campos removidos.
[
{
"ResourceGroupName": "QUERYEXAMPLE",
"Id": "/subscriptions/.../resourceGroups/QUERYEXAMPLE/providers/Microsoft.Compute/virtualMachines/ExampleLinuxVM",
"VmId": "...",
"Name": "ExampleLinuxVM",
"Type": "Microsoft.Compute/virtualMachines",
"Location": "westus2",
...
"OSProfile": {
"ComputerName": "ExampleLinuxVM",
"AdminUsername": "...",
"AdminPassword": null,
"CustomData": null,
"WindowsConfiguration": null,
"LinuxConfiguration": "Microsoft.Azure.Management.Compute.Models.LinuxConfiguration",
"Secrets": "",
"AllowExtensionOperations": true
},
"Plan": null,
"ProvisioningState": "Succeeded",
"StorageProfile": {
"ImageReference": "Microsoft.Azure.Management.Compute.Models.ImageReference",
"OsDisk": "Microsoft.Azure.Management.Compute.Models.OSDisk",
"DataDisks": ""
},
"DisplayHint": 0,
"Identity": null,
"Zones": [
],
"FullyQualifiedDomainName": null,
"AdditionalCapabilities": null,
"RequestId": "...",
"StatusCode": 200
},
...
]
Conversão em XML
O cmdlet ConvertTo-XML
converte o objeto de resposta do Azure PowerShell num objeto XML puro, que pode ser tratado como qualquer outro objeto XML no PowerShell.
Get-AzVM | ConvertTo-XML
xml Objects
--- -------
version="1.0" encoding="utf-8" Objects
Conversão em HTML
A conversão de um objeto em HTML produz uma saída que é renderizada como uma tabela HTML. A renderização do HTML depende do comportamento do seu navegador para renderizar tabelas que não contêm informações de largura. Não são expandidos objetos de classe personalizada.
Get-AzVM | ConvertTo-HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HTML TABLE</title>
</head><body>
<table>
<colgroup><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/></colgroup>
<tr><th>ResourceGroupName</th><th>Id</th><th>VmId</th><th>Name</th><th>Type</th><th>Location</th><th>LicenseType</th><th>Tags</th><th>AvailabilitySetReference</th><th>DiagnosticsProfile</th><th>Extensions</th><th>HardwareProfile</th><th>InstanceView</th><th>NetworkProfile</th><th>OSProfile</th><th>Plan</th><th>ProvisioningState</th><th>StorageProfile</th><th>DisplayHint</th><th>Identity</th><th>Zones</th><th>FullyQualifiedDomainName</th><th>AdditionalCapabilities</th><th>RequestId</th><th>StatusCode</th></tr>
<tr><td>QUERYEXAMPLE</td><td>/subscriptions/.../resourceGroups/QUERYEXAMPLE/providers/Microsoft.Compute/virtualMachines/ExampleLinuxVM</td><td>...</td><td>ExampleLinuxVM</td><td>Microsoft.Compute/virtualMachines</td><td>westus2</td><td></td><td>System.Collections.Generic.Dictionary`2[System.String,System.String]</td><td></td><td></td><td>System.Collections.Generic.List`1[Microsoft.Azure.Management.Compute.Models.VirtualMachineExtension]</td><td>Microsoft.Azure.Management.Compute.Models.HardwareProfile</td><td></td><td>Microsoft.Azure.Management.Compute.Models.NetworkProfile</td><td>Microsoft.Azure.Management.Compute.Models.OSProfile</td><td></td><td>Succeeded</td><td>Microsoft.Azure.Management.Compute.Models.StorageProfile</td><td>Compact</td><td></td><td>System.Collections.Generic.List`1[System.String]</td><td></td><td></td><td>...</td><td>OK</td></tr>
<tr><td>QUERYEXAMPLE</td><td>/subscriptions/.../resourceGroups/QUERYEXAMPLE/providers/Microsoft.Compute/virtualMachines/RHELExample</td><td>...</td><td>RHELExample</td><td>Microsoft.Compute/virtualMachines</td><td>westus2</td><td></td><td>System.Collections.Generic.Dictionary`2[System.String,System.String]</td><td></td><td></td><td>System.Collections.Generic.List`1[Microsoft.Azure.Management.Compute.Models.VirtualMachineExtension]</td><td>Microsoft.Azure.Management.Compute.Models.HardwareProfile</td><td></td><td>Microsoft.Azure.Management.Compute.Models.NetworkProfile</td><td>Microsoft.Azure.Management.Compute.Models.OSProfile</td><td></td><td>Succeeded</td><td>Microsoft.Azure.Management.Compute.Models.StorageProfile</td><td>Compact</td><td></td><td>System.Collections.Generic.List`1[System.String]</td><td></td><td></td><td>...</td><td>OK</td></tr>
<tr><td>QUERYEXAMPLE</td><td>/subscriptions/.../resourceGroups/QUERYEXAMPLE/providers/Microsoft.Compute/virtualMachines/WinExampleVM</td><td>...</td><td>WinExampleVM</td><td>Microsoft.Compute/virtualMachines</td><td>westus2</td><td></td><td>System.Collections.Generic.Dictionary`2[System.String,System.String]</td><td></td><td></td><td>System.Collections.Generic.List`1[Microsoft.Azure.Management.Compute.Models.VirtualMachineExtension]</td><td>Microsoft.Azure.Management.Compute.Models.HardwareProfile</td><td></td><td>Microsoft.Azure.Management.Compute.Models.NetworkProfile</td><td>Microsoft.Azure.Management.Compute.Models.OSProfile</td><td></td><td>Succeeded</td><td>Microsoft.Azure.Management.Compute.Models.StorageProfile</td><td>Compact</td><td></td><td>System.Collections.Generic.List`1[System.String]</td><td></td><td></td><td>...</td><td>OK</td></tr>
</table>
</body></html>
Azure PowerShell