@yuu168

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

DNSアドレスの設定について

Q&A

解決したいこと

未経験で社内SEになったばかりの者です。
基礎的なIT用語を押さえている程度の知識しかないため
投稿しました。

背景として、社内ネットワークのイントラ環境で
複数台のPC端末に対してDNSの設定をなるべく手数をかけずに
batファイルを使って行いたいと思っています。

環境はwindowsになります。

以下の内容のようなものを作ることは可能なのか
また、他に方法があるのでしたら、コードと一緒に教えていただけませんでしょうか。


コマンドプロンプトのipconfig /allの結果で
DHCPの有効が[はい]か[いいえ]で判定して処理を行えないかと考えています。

[はい]の場合、設定変更を行わず「設定を変更する必要がありません」と
コマンドプロンプト画面に文字を表示させる。

[いいえ]の場合、IPv4の優先DNSサーバーアドレスと代替DNSサーバーアドレスを
指定のアドレス(例:優先DNSを192.168.1.1 代替DNSを192.168.1.2)に設定変更を行い
設定変更後に「処理が完了しました」とコマンドプロンプト画面に文字を表示させる。


コマンドプロンプトのipconfig /allの結果を
ipconfig/all>d:**.txtでテキストファイルに保存し
テキストファイルを読み込んで①と同じ[はい]、[いいえ]で判定し処理を行う。

ネットワークアダプタ名が整理されていれば以下のような文で問題ないと思いますが
ネットワークアダプタ名が管理されていないため人によって名前が違い適用できません。

netsh interface ipv4 set dns name="ローカルネット" source=static address=192.168.1.1 register=primary validate=no
netsh interface ipv4 add dns name="ローカルネット" address=192.168.1.2 index=2 validate=no
pause
exit

上記を踏まえて、アドバイスをいただけませんでしょうか
よろしくお願いいたします。

0 likes

1Answer

ヒントだけになりますが、ネットワークアダプタ名がわからなくても以下のような感じでDNSサーバの情報にアクセスできます。

powershell "Get-NetRoute -DestinationPrefix '0.0.0.0/0'|Get-DnsClientServerAddress -AddressFamily IPv4"

Get-NetRoute の部分はデフォルト経路になっているインタフェースを探して、
Get-DnsClientServerAddress でそのインタフェースのDNSサーバを取得しています。

今回やりたいことは取得ではなく設定ですが、以下のマイクロソフトのドキュメントを見ていただければ使い方は同じような感じです。

0Like

Your answer might help someone💌