Saya ingin mencantumkan semua nama Mesin Virtual yang berisi alamat IP pribadi di bawah subnet tertentu (mis., bernama "sub-a"). Bagaimana aku melakukan itu?

Saya berharap kueri ini di Azure Resource Graph Explorer setidaknya akan mencetak semua alamat IP pribadi yang tidak kosong:

Resources
| where type =~ 'microsoft.compute/virtualmachines' and isnotempty(properties.privateIPAddress)
0
bulkmoustache 24 Mei 2021, 18:28

1 menjawab

Jawaban Terbaik

Anda perlu melihat Antarmuka Jaringan dan memperluas properti untuk menarik alamat IP Pribadi. Sesuatu seperti ini harus melakukan trik. Saya memodifikasi salah satu contoh untuk menarik IP pribadi alih-alih IP publik.

 Resources
| where type =~ 'microsoft.compute/virtualmachines'
| extend nics=array_length(properties.networkProfile.networkInterfaces)
| mv-expand nic=properties.networkProfile.networkInterfaces
| where nics == 1 or nic.properties.primary =~ 'true' or isempty(nic)
| project vmId = id, vmName = name, vmSize=tostring(properties.hardwareProfile.vmSize), nicId = tostring(nic.id)
| join kind=leftouter (
    Resources
    | where type =~ 'microsoft.network/networkinterfaces'
    | extend ipConfigsCount=array_length(properties.ipConfigurations)
    | extend subnet = tostring(properties.ipConfigurations[0].properties.subnet) 
    | mv-expand ipconfig=properties.ipConfigurations
    | where ipConfigsCount == 1 or ipconfig.properties.primary =~ 'true'
    | project nicId = id, subnet, privateIp = tostring(ipconfig.properties.privateIPAddress))
on nicId
    | order by subnet asc
1
Ken W MSFT 24 Mei 2021, 20:50