Powershell - get server name and IP address from text list

I use the following sentence provided in this link: Experts-Exchange

I am trying to take a list of servers (hostname) and save the hostname and IP address in a .csv file.

Using the following Powershell code, I see the host name, but the same IP address for each server in the results pane.

$servers = get-content "C:\TEMP\servers.txt"
$serversAndIps = "C:\TEMP\List_of_servers_with_ips.csv"


$results =@()
foreach ($server in $servers) {
  $results =@()
    $result = "" | Select ServerName , ipaddress
    $result.ipaddress = [System.Net.Dns]::GetHostAddresses($server)
  foreach($a in $addresses) {
    "{0},{1}" -f $server, $a.IPAddressToString
  }
    $result.servername = $server
    $results += $result
}
$results | export-csv -NoTypeInformation $serversandips

When I open the .csv file, I get this:

"ServerName","ipaddress"
"Server_name_1","System.Net.IPAddress[]"

If I run this PowerShell script, I can get the host name and the correct IP address in the result pane. I just need to know how to transfer the results to a .csv file.

$servers = get-content "C:\TEMP\servers.txt"
foreach ($server in $servers) {
  $addresses = [System.Net.Dns]::GetHostAddresses($server)
  foreach($a in $addresses) {
    "{0},{1}" -f $server, $a.IPAddressToString
  }
}

Any suggestions?

+5
source share
1 answer

Looks like some simple typos at work.

  • $result reset
  • $ .
  • $result.ipaddress $a.IPAddressToString .

:

$servers = get-content "X:\servers.txt"
$serversAndIps ="X:\test.csv"

$results = @()
foreach ($server in $servers)
{
    $result = "" | Select ServerName , ipaddress
    $result.ipaddress = [System.Net.Dns]::GetHostAddresses($server)
    $addresses = [System.Net.Dns]::GetHostAddresses($server)

    foreach($a in $addresses) 
    {
        "{0},{1}" -f $server, $a.IPAddressToString
        $result.ipaddress = [System.Net.Dns]::GetHostAddresses($server)
    }

    $result.servername = $server
    $result.ipaddress = $a.IPAddressToString
    $results += $result
}

$results | export-csv -NoTypeInformation $serversandips
+9

Source: https://habr.com/ru/post/1584535/