以下のコードを例に説明します。
$Temporary = Get-WmiObject "Win32_NetworkAdapterConfiguration" if ($Temporary.Length -eq $null) { $Length = 0 } ` else { $Length = ($Temporary.Length - 1) } $Network = (0..$Length) | Foreach-Object { New-Object Object | Add-Member NoteProperty 'インターフェース名' $Temporary.Description[$_] -PassThru | Add-Member NoteProperty 'DNSサーバ' $Temporary.DNSServerSearchOrder[$_] -PassThru }
上記コードを実行した場合の出力結果は以下の様になります。
インターフェース名 DNSサーバ ----------------- ------- Interface_A IPAddress (※Interface_Aの優先DNSサーバ) Interface_B IPAddress (※本来はInterface_Aの代替DNSサーバ)
ですが、仮にDHCPを利用しDNSサーバを1つのインターフェースに対して2つ指定されていた場合でも出力は1つの値しか出力されません。
Get-WmiObject "Win32_NetworkAdapterConfiguration" だけの出力を見ると以下の様に出力されています。
Description : Interface DNSServerSearchOrder : {IPAddress_A, IPAddress_B}
上述したコードを利用して一工夫加えて以下の様な出力にしたいのですが、可能でしょうか。
インターフェース名 DNSサーバ ----------------- ------ Interface_A {IPAddress_A, IPAddress_B} Interface_B {IPAddress_A, IPAddress_B}
どなたかご教授ください。
以上、宜しくお願い致します。
Interface_A、Interface_B、Interface_Cが同じネットワークに接続されている(同じDHCPサーバからIPを付与されている)のであれば、使うDNSサーバは同じになります。3つのInterfaceがネットワークの中で、どのように接続されている・使われているのでしょうか?
coco_bauer さん 修正依頼ありがとうございます。修正致しました。本来 Interface_A の代替DNSサーバであるはずのIPアドレスがループで繰り下がり、Interface_B のDNSサーバに指定されてしまっていることが問題でした。まだ質問文に不備などございましたら、指摘頂けると幸いです。