4

Powershell スクリプトは初めてなので、スクリプトを 1 つ作成する必要があります。サーバーのホスト名のリストがあり、それらのサーバーの IP アドレスを取得して、結果をファイルに書き込む必要があります。

ホスト名は Excel スプレッドシートの 1 列ですが、任意の形式 (csv、1 行に 1 つのホスト名を含む単純な txt ファイルなど) にフォーマットできます。

サーバーのホスト名とそのIPアドレスが1行にあるように出力をフォーマットしたいと思います(サーバーに複数のIPがある場合は複数の行があります)。

これまでのところ、ホスト名を 1 行に 1 つずつ記述したシンプルなテキスト ファイルを使用してきましたが、PS の出力からは、IP アドレスがどのサーバーのものであるかを区別できません。

$servers = get-content "path_to_the_file" 
foreach ($server in $servers) {
[System.Net.Dns]::GetHostAddresses($server)
}

そのため、csvファイルからホスト名をロードし、ホスト名と関連するIPアドレスを別のcsvに再度出力することについて疑問に思っていましたが、方法がわかりません.

foreach で nslookup $server を実行して、必要な情報 (ホスト名と IP) を取得する可能性を調査しています。

誰か手を貸してくれませんか?

ありがとうございました。

4

4 に答える 4

3

DNS レコードがない場合、「IP を解決できません」と表示されます。

$servers = get-content "path_to_the_file"e
foreach ($Server in $Servers)
{
    $Addresses = $null
    try {
        $Addresses = [System.Net.Dns]::GetHostAddresses("$Server").IPAddressToString
    }
    catch { 
        $Addresses = "Server IP cannot resolve."
    }
    foreach($Address in $addresses) {
        write-host $Server, $Address 
    }
}
于 2015-11-14T00:55:50.903 に答える