I face this problem recently. I wanted to get list of Azure virtual machines and its IP addresses and display as table.
First solution did not work.
function Get-IpAddresses1{
Write-Host "Private Ip Addresses"
$privateIpAddress = New-Object System.Collections.ArrayList;
Get-AzNetworkInterface | where {$_.VirtualMachine.Id -ne $null} | foreach {
$privateIpAddress.Add(@{
VirtualMachine = ($_.VirtualMachine.Id.Split('/') | select -Last 1)
Ip = $_.IpConfigurations[0].PrivateIpAddress
});
}
$privateIpAddress | Format-Table;
}
It gives result as follows.
Private Ip Addresses
0
1
2
3
Name Value
---- -----
Ip 10.0.1.5
VirtualMachine hemantcassandratest1
Ip 10.0.1.6
VirtualMachine hemantcassandratest2
Ip 10.0.1.7
VirtualMachine hemantcassandratest3
Ip 10.0.0.4
VirtualMachine hemanttestvm
To get rid of indexes getting printed assign return value of Add method to a temp variable.
function Get-IpAddresses1{
Write-Host "Private Ip Addresses"
$privateIpAddress = New-Object System.Collections.ArrayList;
Get-AzNetworkInterface | where {$_.VirtualMachine.Id -ne $null} | foreach {
$temp = $privateIpAddress.Add(@{
VirtualMachine = ($_.VirtualMachine.Id.Split('/') | select -Last 1)
Ip = $_.IpConfigurations[0].PrivateIpAddress
});
}
$privateIpAddress | Format-Table;
}
I get result as follows now.
Private Ip Addresses
Name Value
---- -----
Ip 10.0.1.5
VirtualMachine hemantcassandratest1
Ip 10.0.1.6
VirtualMachine hemantcassandratest2
Ip 10.0.1.7
VirtualMachine hemantcassandratest3
Ip 10.0.0.4
VirtualMachine hemanttestvm
To get the result as per my expectation I had to use another syntax for creating object.
function Get-IpAddresses{
Write-Host "Private Ip Addresses"
$privateIpAddress = New-Object System.Collections.ArrayList;
Get-AzNetworkInterface | where {$_.VirtualMachine.Id -ne $null} | foreach {
$temp = $privateIpAddress.Add((New-Object PSObject -Property @{
VirtualMachine= ($_.VirtualMachine.Id.Split('/') | select -Last 1);
Ip=$_.IpConfigurations[0].PrivateIpAddress}));
}
$privateIpAddress | Format-Table;
}
Now the result is as follows.
Private Ip Addresses
Ip VirtualMachine
-- --------------
10.0.1.5 hemantcassandratest1
10.0.1.6 hemantcassandratest2
10.0.1.7 hemantcassandratest3
10.0.0.4 hemanttestvm
Cheers,
Hemant
$buildsListis and how it was built. What is$buildsList.GetType().fullname. One of the ones in the example is spelled wrong. - Matt