私はこのリンクで提供されている次の提案を使用しています: Experts-Exchange
サーバー(ホスト名)リストを取得して、ホスト名とIPアドレスを.csvファイルに保存しようとしています。
次のPowershellコードを使用すると、結果ペインにホスト名が表示されますが、すべてのサーバーで同じIPアドレスが表示されます。
$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
.csvファイルを開くと、次のようになります。
"ServerName","ipaddress"
"Server_name_1","System.Net.IPAddress[]"
このPowerShellスクリプトを実行すると、結果ペインでホスト名と正しいIPアドレスを取得できます。結果を.csvファイルに転送する方法を知る必要があります。
$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
}
}
助言がありますか?
いくつかの単純なタイプミスが機能しているように見えます。
これを試して:
$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