PowerShell を使用してサブスクリプション内のすべての VM に関する詳細情報を収集する

この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。

以下URLに掲載されているPowerShellを利用すれば、CSV形式で仮想マシンのNIC情報まで掲載した詳細情報一覧が作成可能です。
PowerShell を使用してサブスクリプション内のすべての VM に関する詳細情報を収集する

仮想マシン情報を取得する
Get-AzVM
コマンドのみだと、NICの詳細情報までは取得できず、IP一覧などを作成したい場合には他コマンドとの組み合わせが必要です。上述のPowerShellを利用すればIP情報などを含めた一覧作成が可能です。

また、出力情報もカスタマイズが可能です。
例えば、元のスクリプトだと出力情報として以下のような項目を指定していることがわかります。

$info = “” | Select VmName, ResourceGroupName, Region, VmSize, VirtualNetwork, Subnet, PrivateIpAddress, OsType, PublicIPAddress, NicName, ApplicationSecurityGroup

例えば、ここに、「高速NWオプションのステータス」を追加すれば、一覧情報に含めることが可能です。
※追加したいカラムはGet-AzNetworkInterfaceで確認してください。以下はEnableAcceleratedNetworkingカラムを追加し、その出力から高速NWオプションが有効かどうか(FalseかTrueか)を確認できるようにしています。
変更箇所が2か所ありますが、スクリプトの中身をよく確認すると比較的容易ににカスタマイズ可能だと思います。
変更箇所1

$info = “” | Select VmName, ResourceGroupName, Region, VmSize, VirtualNetwork, Subnet, PrivateIpAddress, OsType, PublicIPAddress, NicName, ApplicationSecurityGroup, EnableAcceleratedNetworking

変更箇所2

$info.OsType = $vm.StorageProfile.OsDisk.OsType
$info.VMName = $vm.Name
$info.ResourceGroupName = $vm.ResourceGroupName
$info.Region = $vm.Location
$info.VmSize = $vm.HardwareProfile.VmSize
$info.VirtualNetwork = $nic.IpConfigurations.subnet.Id.Split(“/”)[-3]
$info.Subnet = $nic.IpConfigurations.subnet.Id.Split(“/”)[-1]
$info.PrivateIpAddress = $nic.IpConfigurations.PrivateIpAddress
$info.NicName = $nic.Name
$info.ApplicationSecurityGroup = $nic.IpConfigurations.ApplicationSecurityGroups.Id
$info.EnableAcceleratedNetworking = $nic.EnableAcceleratedNetworking
$report+=$info

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルクロステクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください