PowerShell使ってAzure VMの設定や状態、IPアドレス、ディスクの情報を取得する方法
Azure PowerShellを使用して、仮想マシン(Azure VM)のネットワークインターフェースやディスク(Azure Managed Disks)の設定を一括取得する方法です。
-
- Get-AzVMで仮想マシンの設定を取得
- Get-AzNetworkInterfaceでネットワークインターフェースの設定を取得
- Get-AzDiskでマネージドディスクの設定を取得
- コマンドレットを組み合わせて仮想マシンの設定をまとめて取得
今回は、仮想マシンのプライベートIPアドレスや、マネージドディスクのサイズ、ストレージの種類などをまとめて取得する方法を確認しています。
※本記事では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
※本記事では、Azure Managed Disks(Azure マネージド ディスク)をマネージドディスクとして表記しています。
Azure PowerShellを使って仮想マシンの設定情報を取得
仮想マシンの情報を取得する場合はGet-AzVMを使う
仮想マシンの情報を取得する場合は、Get-AzVMコマンドレットを使用します。
リソースグループやリージョン(場所)などの情報が表示されます。
-Statusオプションを使うと、仮想マシンの状態(起動中や割り当て解除などのステータス)を確認できます。
|
PS C:\>
Get-AzVM PS C:\>
Get-AzVM -status |
Get-AzVMコマンドは、リソースグループや仮想マシン名を指定して実行できます。
|
PS C:\>
Get-AzVM -ResourceGroupName test-rg-01 -name test-vm-01 |
※Format-List(fl)などを利用することで、仮想マシンの情報を詳細に表示できます。
Get-AzVMコマンドレットの詳細については、こちらで紹介しています。
仮想マシンのステータスの確認から、起動や停止までの方法を解説しています。
Azure CLIコマンドについても紹介しています。
仮想マシンのIP情報を取得する場合はGet-AzNetworkInterfaceを使う
仮想マシンのIP情報取得にはGet-AzNetworkInterfaceを使います。
Get-AzVMコマンドレットの結果では、プライベートIPアドレスは確認できません。
NetworkProfileを確認しても、ネットワークインターフェースのIDしか表示されません。
|
PS C:\>Get-AzVM -ResourceGroupName test-rg-01 -name test-vm-01 | Format-Custom -Property NetworkProfile NetworkApiVersion = |
仮想マシンのプライベートIPアドレスは、ネットワークインターフェースのリソースで設定されています。
ネットワークインターフェースの詳細情報を取得するためには、Get-AzNetworkInterfaceコマンドを使用します。
ネットワークインターフェースのリソース名やリソースIDを指定して確認できます。
実行結果から、接続されている仮想マシンを特定することも可能です。
|
PS C:\>Get-AzNetworkInterface -ResourceId /subscriptions/サブスクリプションID/resourceGroups/test-rg-01/providers/Microsoft.Network/networkInterfaces/test-vm-XXXXX |fl |
※仮想ネットワーク名やサブネット名なども確認できます。
Get-AzVMの結果からネットワークインターフェースのリソースIDを取得して表示することも可能です。
関連付けられている仮想マシンのリソースIDは、Get-AzNetworkInterfaceの実行結果のVirtualMachine項目で確認できます。
|
# Get-AzVMでネットワークインターフェースのリソースIDを取得してGet-AzNetworkInterfaceを実行 # ネットワークインターフェースに関連付けされている仮想マシンのリソースIDの確認方法 |
※ネットワークインターフェースが1つだけ設定されている場合の例です。
仮想マシンに接続されているマネージドディスクの詳細情報を取得する場合はGet-AzDiskを使う
仮想マシンに接続されているマネージドディスクの詳細情報取得にはGet-AzDiskを使います。
Get-AzVMコマンドの結果では、ディスクの詳細情報は確認できません。
StorageProfile内にDiskSizeGBという項目がありますが、値は取得できません。
|
PS C:\> Get-AzVM -ResourceGroupName test-rg-01 -name test-vm-01 | Format-Custom -Property StorageProfile OsDisk = |
仮想マシンのマネージドディスクは、仮想マシンとは別のリソースです。
マネージドディスクの詳細情報を取得するためには、Get-AzDiskコマンドを使用します。
先ほど確認したリソースIDを使って情報を取得できます。
実行結果から、接続されている仮想マシンを特定することも可能です。
|
PS C:\>Get-AzDisk -name test-vm-01_OsDisk_1_XXXXX ResourceGroupName : test-rg-01 |
※実行結果例はOSディスクの場合です。
Get-AzVMの結果から、マネージドディスクのリソース名を取得して表示することも可能です。
|
# Get-AzVMでマネージドディスクのリソースIDを取得してGet-AzDiskを実行 PS C:\> $vm = Get-AzVM -ResourceGroupName test-rg-01 -name test-vm-01 同じ実行結果 |
※OSディスクの場合は、vm.StorageProfile.OsDisk.Nameで取得できます。データディスクの場合は、vm.StorageProfile.DataDisks.Nameとなります。
※マネージドディスクが複数存在する場合は、$vm.StorageProfile.DataDisks[1].Nameのようにインデックスを指定すると、ディスク単位で取得できます。
—広告—
Azure PowerShellを使って仮想マシンの状態、ディスク、ネットワークインターフェース設定を一括取得
今回取得する仮想マシンの情報
仮想マシンの状態、マネージドディスク、ネットワークインターフェースに関する情報をまとめて取得します。
-
- 取得情報
- 仮想マシン名
- 仮想マシンの状態(実行中や割り当て解除)
- 仮想マシンのサイズ
- ディスク名
- ディスクサイズ
- ストレージの種類(ディスク)
- ネットワークインターフェース名
- プライベートIPアドレス
- プライベートIPアドレスの割り当て(静的IP、動的IP)
- 取得情報
VmNameに仮想マシン名としてtest-vm-01、ResourceGroupNameにリソースグループ名としてtest-rg-01を指定しています。
Get-AzVMを使って仮想マシンのサイズや状態を取得
Get-AzVMで仮想マシン名やサイズを取得します。
Get-AzVM -Statusで仮想マシンの稼働状況を取得します。
Select-Objectで、それぞれの実行結果を組み合わせて表示します。
|
$VmName = “test-vm-01" $vm = Get-AzVM -ResourceGroupName $ResourceGroupName -name $VmName Get-AzVm -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name -Status ` |
実行結果です。
|
Name Status VMSize |
Get-AzNetworkInterfaceを使ってプライベートIPアドレスや割り当てを取得
Get-AzNetworkInterfaceで、すべてのネットワークインターフェースの情報を取得します。
Where { _.VirtualMachine.Id -contains VM.Id }として、仮想マシンのリソースIDを含むネットワークインターフェースのみを抽出しています。
※完全一致の場合は、-containsではなく-eq演算子を使用します。
|
$VmName = “test-vm-01" $vm = Get-AzVM -ResourceGroupName $ResourceGroupName -name $VmName Get-AzNetworkInterface ` |
実行結果です。
|
NWInterFaceNmae PrivateIP PrivateIpAllocation |
Get-AzDiskを使ってマネージドディスクのサイズやストレージの種類を取得
Get-AzDiskで、すべてのマネージドディスクの情報を取得します。
Where { _.ManagedBy -contains VM.Id }として、仮想マシンのリソースIDが関連付けられているマネージドディスクのみを抽出しています。
※完全一致の場合は、-containsではなく-eq演算子を使用します。
|
$VmName = “test-vm-01" $vm = Get-AzVM -ResourceGroupName $ResourceGroupName -name $VmName
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName`
| Where { $_.ManagedBy -contains $VM.id }`
| Select-Object @{n="DiskNmae"; e={$_.Name}},DiskSizeGB,@{n="Tier"; e={$_.sku.Name}}
|
実行結果です。
|
DiskNmae DiskSizeGB Tier |
仮想マシン名とリソースグループを指定して情報を一括取得
仮想マシン名とリソースグループを指定して、設定情報をまとめて取得します。
Get-AzVM、Get-AzNetworkInterface、Get-AzDiskを組み合わせて取得しています。
|
$VmName = “test-vm-01" $vm = Get-AzVM -ResourceGroupName $ResourceGroupName -name $VmName
$GetVMInfo = Get-AzVM -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name -Status `
| select-Object Name,@{n="Status"; e={$_.Statuses[1].Code}},@{n="VMSize"; e={$vm.HardwareProfile.VmSize}}
$GetNwInfo = Get-AzNetworkInterface `
| Where { $_.VirtualMachine.id -contains $VM.id}`
| Select-Object @{n="NWInterFaceNmae"; e={$_.Name}},`
@{n="PrivateIP"; e={$_.IpConfigurations.PrivateIpAddress}},`
@{n="PrivateIpAllocation"; e={$_.IpConfigurations.PrivateIpAllocationMethod}}
$GetDiskInfo = Get-AzDisk -ResourceGroupName $vm.ResourceGroupName`
| Where { $_.ManagedBy -contains $VM.id }`
| Select-Object @{n="DiskNmae"; e={$_.Name}},DiskSizeGB,@{n="Tier"; e={$_.sku.Name}}
Write-Output $GetVMInfo,$GetDiskInfo,$GetNwInfo |fl
|
Azure PowerShellを実行して仮想マシンの情報を一括取得
Azure PowerShellを実行して、仮想マシンの情報をまとめて取得した結果です。
複数設定されているマネージドディスクの情報も取得できています。
|
Name : test-vm-01 DiskNmae : test-vm-01-datadisk DiskNmae : test-vm-01_OsDisk_1_XXXXX NWInterFaceNmae : test-vm-XXXXX |
—広告—
最後に
今回は、仮想マシンの設定を取得するAzure PowerShellについて確認しました。
Get-AzVM、Get-AzNetworkInterface、Get-AzDiskを利用することで、各種情報を取得できることが分かりました。
ネットワークインターフェースやマネージドディスクの設定には、関連付けられている仮想マシンのリソースIDが含まれている項目があります。
取得したリソースIDを使うことで、仮想マシンに関連したネットワークインターフェースやマネージドディスクの設定をまとめて抽出することができました。
引き続き、いろいろ試してみたいと思います。
Get-AzVMを使った仮想マシンの起動停止やステータス情報(電源状態)の確認については、こちらで紹介しています。
PowerShellを利用して仮想マシンの削除と一緒にネットワークインターフェースやディスクを削除する方法は、こちらで紹介しています。

