Azure PowerShell コマンドレット出力の書式設定

重要

Az PowerShell モジュール で AzureRM PowerShell モジュールのすべての機能およびその他を利用できるようになったため、2024 年 2 月 29 日に AzureRM PowerShell モジュールは廃止になります。

サービスの中断を回避するために、2024 年 2 月 29 日までに、AzureRM PowerShell モジュールを使用するスクリプトを更新して、Az PowerShell モジュールを使用するようにしてください。 スクリプトを自動的に更新するには、 クイックスタート ガイドに従ってください。

Azure PowerShell コマンドレットにはそれぞれ、出力結果が読みやすいように既定の書式があらかじめ定義されています。 次の PowerShell コマンドレットを使って、必要に応じて出力の書式を調整したり、コマンドレットの出力形式を変換したりすることもできます。

書式設定 変換
Format-Custom ConvertTo-Csv
Format-List ConvertTo-Html
Format-Table ConvertTo-Json
Format-Wide ConvertTo-Xml

書式設定の例

この例では、既定のサブスクリプションに含まれる一連の Azure VM を取得しています。 Get-AzureRmVM コマンドの既定の出力は表形式です。

Get-AzureRmVM
ResourceGroupName          Name   Location          VmSize  OsType              NIC ProvisioningState
-----------------          ----   --------          ------  ------              --- -----------------
MYWESTEURG        MyUnbuntu1610 westeurope Standard_DS1_v2   Linux myunbuntu1610980         Succeeded
MYWESTEURG          MyWin2016VM westeurope Standard_DS1_v2 Windows   mywin2016vm880         Succeeded

取得する列を制限する必要がある場合は、Format-Table コマンドレットを使ってください。 以下の例は、先ほどと同じ一連の仮想マシンを取得するものです。ただし今回は、VM の名前とリソース グループ、VM の場所に出力内容を限定しています。 データのサイズに応じて列のサイズを変更するには、-Autosize パラメーターを使います。

Get-AzureRmVM |
  Format-Table -Property Name, ResourceGroupName, Location -AutoSize
Name          ResourceGroupName Location
----          ----------------- --------
MyUnbuntu1610 MYWESTEURG        westeurope
MyWin2016VM   MYWESTEURG        westeurope

リスト形式で出力することもできます。 Format-List コマンドレットを使った表示例を次に示します。

Get-AzureRmVM |
  Format-List -Property Name, VmId, Location, ResourceGroupName
Name              : MyUnbuntu1610
VmId              : 33422f9b-e339-4704-bad8-dbe094585496
Location          : westeurope
ResourceGroupName : MYWESTEURG

Name              : MyWin2016VM
VmId              : 4650c755-fc2b-4fc7-a5bc-298d5c00808f
Location          : westeurope
ResourceGroupName : MYWESTEURG

他のデータ型への変換

PowerShell では、コマンド出力を複数のデータ形式に変換することもできます。 次の例では、Select-Object コマンドレットを使って、サブスクリプションに含まれる仮想マシンの属性を取得し、その出力を、データベースやスプレッドシートにインポートしやすいように CSV に変換します。

Get-AzureRmVM |
  Select-Object -Property ResourceGroupName, Id, VmId, Name, Location, ProvisioningState |
  ConvertTo-Csv -NoTypeInformation
"ResourceGroupName","Id","VmId","Name","Location","ProvisioningState"
"MYWESTUERG","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYWESTUERG/providers/Microsoft.Compute/virtualMachines/MyUnbuntu1610","33422f9b-e339-4704-bad8-dbe094585496","MyUnbuntu1610","westeurope","Succeeded"
"MYWESTUERG","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYWESTUERG/providers/Microsoft.Compute/virtualMachines/MyWin2016VM","4650c755-fc2b-4fc7-a5bc-298d5c00808f","MyWin2016VM","westeurope","Succeeded"

出力を JSON 形式に変換することもできます。 次の例は、先ほどと同じ VM のリストを作成するものですが、出力形式は JSON に変更しています。

Get-AzureRmVM |
  Select-Object -Property ResourceGroupName, Id, VmId, Name, Location, ProvisioningState |
  ConvertTo-Json
[
    {
        "ResourceGroupName":  "MYWESTEURG",
        "Id":  "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYWESTEURG/providers/Microsoft.Compute/virtualMachines/MyUnbuntu1610",
        "VmId":  "33422f9b-e339-4704-bad8-dbe094585496",
        "Name":  "MyUnbuntu1610",
        "Location":  "westeurope",
        "ProvisioningState":  "Succeeded"
    },
    {
        "ResourceGroupName":  "MYWESTEURG",
        "Id":  "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYWESTEURG/providers/Microsoft.Compute/virtualMachines/MyWin2016VM",
        "VmId":  "4650c755-fc2b-4fc7-a5bc-298d5c00808f",
        "Name":  "MyWin2016VM",
        "Location":  "westeurope",
        "ProvisioningState":  "Succeeded"
    }
]