none
スタートアップスクリプトでDNSを一斉に設定変更したい。 RRS feed

  • 質問

  • 表題の件で質問です。

    どなたかご教授頂けないでしょうか?

    ActiveDirectory環境で、既存のDNS 192.168.10.254(仮)を

    プライマリ:192.168.20.254(仮)

    セカンダリ:192.168.30.254(仮)

    と設定したいです。

    スタートアップスクリプトで、netsh interface set dns "ローカル エリア接続" <IPアドレス>

    で変更可能なのは調べれたのですが、ローカルエリア接続2のPCや、無線LANで接続しているPCを

    変更するにはどのようなスクリプトを作成するのが良いでしょうか?

    ご教授のほど、宜しくお願い致します。

    2015年9月15日 6:45

回答

  • チャブーンです。

    もし、バッチファイルではなくてPowerShellを使ってもよい、ということでしたら、したのスクリプトで簡単に設定できます。

    $DNS=@("192.168.20.254","192.168.30.254")
    $NIC=Get-WMIObject Win32_NetworkAdapterConfiguration|Where {($_.IPEnabled -eq $True)}
    $NIC.SetDNSServerSearchOrder($DNS)
    

    うえは「ネットワーク接続の名前」でインターフェースを指定するのではなく、IP通信が可能なインターフェースという別の視点で指定を行っています。クライアント端末であれば、IP通信が可能=利用中、のインターフェースは1つなので、この方法が使えます。

    マルチホーム(同時に2つ以上のネットワークにタコ足的につながっている)端末の場合、デフォルトゲートウェイの有無でインターフェースを選択する方法があります。デフォルトゲートウェイが指定されるインターフェースは、外部ネットワーク(インターネット含む)と通信を行うメインのインターフェースであること、デフォルトゲートウェイは複数のインターフェースに同時指定されることはない、ことを利用します。

    $DNS=@("192.168.20.254","192.168.30.254")
    $NIC=Get-WMIObject Win32_NetworkAdapterConfiguration|Where {($_.DefaultIPGateway -ne $Null)}
    $NIC.SetDNSServerSearchOrder($DNS)


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    • 回答の候補に設定 佐伯玲 2015年9月17日 5:24
    • 回答としてマーク 佐伯玲 2015年9月25日 2:34
    2015年9月16日 7:19
    モデレータ
  • netsh interface ipv4 dump実行すると、”set interface interface="Wi-Fi"などのように表示される為、
    この記述に従って"ローカルエリア接続"と同様の設定でよいかと思います。

    • 回答の候補に設定 佐伯玲 2015年9月16日 1:26
    • 回答としてマーク 佐伯玲 2015年9月25日 2:34
    2015年9月15日 7:05

すべての返信

  • netsh interface ipv4 dump実行すると、”set interface interface="Wi-Fi"などのように表示される為、
    この記述に従って"ローカルエリア接続"と同様の設定でよいかと思います。

    • 回答の候補に設定 佐伯玲 2015年9月16日 1:26
    • 回答としてマーク 佐伯玲 2015年9月25日 2:34
    2015年9月15日 7:05
  • チャブーンです。

    もし、バッチファイルではなくてPowerShellを使ってもよい、ということでしたら、したのスクリプトで簡単に設定できます。

    $DNS=@("192.168.20.254","192.168.30.254")
    $NIC=Get-WMIObject Win32_NetworkAdapterConfiguration|Where {($_.IPEnabled -eq $True)}
    $NIC.SetDNSServerSearchOrder($DNS)
    

    うえは「ネットワーク接続の名前」でインターフェースを指定するのではなく、IP通信が可能なインターフェースという別の視点で指定を行っています。クライアント端末であれば、IP通信が可能=利用中、のインターフェースは1つなので、この方法が使えます。

    マルチホーム(同時に2つ以上のネットワークにタコ足的につながっている)端末の場合、デフォルトゲートウェイの有無でインターフェースを選択する方法があります。デフォルトゲートウェイが指定されるインターフェースは、外部ネットワーク(インターネット含む)と通信を行うメインのインターフェースであること、デフォルトゲートウェイは複数のインターフェースに同時指定されることはない、ことを利用します。

    $DNS=@("192.168.20.254","192.168.30.254")
    $NIC=Get-WMIObject Win32_NetworkAdapterConfiguration|Where {($_.DefaultIPGateway -ne $Null)}
    $NIC.SetDNSServerSearchOrder($DNS)


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    • 回答の候補に設定 佐伯玲 2015年9月17日 5:24
    • 回答としてマーク 佐伯玲 2015年9月25日 2:34
    2015年9月16日 7:19
    モデレータ
  • ご回答ありがとうございます。

    Wifiで対応できるのですね、参考になりました。

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

    2015年9月24日 1:23
  • チャブーン様

    ご確認ありがとうございます。

    PowerShellの利用大丈夫ですので試してみます。

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

    2015年9月24日 5:18