スクリプトでDNSを変更する


29

DNSサーバーのアドレスを頻繁に変更する必要がありますが、今のところは、「ネットワークと共有センター」-「ローカルエリア接続」-プロパティ-ipv4-を開いてDNS番号を入力します。

それを行うより速い方法はありますか?バッチファイルまたはPowerShellスクリプトを使用して実行できますか?DNSを変更するための組み込みのコンソールコマンドはありますか?

回答:


38

プライマリDNS値:

netsh interface ipv4 set dns "Local Area Connection" static 192.168.0.2

二次価値:

netsh interface ipv4 add dns "Local Area Connection" 192.168.0.3 index=2

接続の名前が正しい場合、これはうまく機能します。名前が「ローカルエリア接続」でない場合、機能しません。XPを実行している場合は、「ipv4」を「ip」に変更する必要があります。IPv6も使用できます。

サブネットマスク、IPアドレス、およびゲートウェイを設定します。

netsh interface ipv4 set address name="Local Area Connection" source=static addr=192.168.1.10 mask=255.255.255.0 gateway=192.168.0.1

ネットワーク接続を見つけるには、cmd行からipconfigを使用できます。ただし、ipconfigの短縮結果については、次を使用することもできます。

ipconfig | find /I "Ethernet adapter"

上記のipconfigコマンドを使用して、接続(ソースコード)をループし、DNSサーバーを設定できます。

:: Set primary and alternate DNS for IPv4 on Windows Server 2000/2003/2008 & 
:: Windows XP/Vista/7
@ECHO OFF
SETLOCAL EnableDelayedExpansion

SET adapterName=

FOR /F "tokens=* delims=:" %%a IN ('IPCONFIG ^| FIND /I "ETHERNET ADAPTER"') DO (
SET adapterName=%%a

REM Removes "Ethernet adapter" from the front of the adapter name
SET adapterName=!adapterName:~17!

REM Removes the colon from the end of the adapter name
SET adapterName=!adapterName:~0,-1!

netsh interface ipv4 set dns name="!adapterName!" static 192.168.0.2 primary
netsh interface ipv4 add dns name="!adapterName!" 192.168.0.3 index=2
)

ipconfig /flushdns

:EOF

3
素晴らしい答え。引用符やコードなどのソースを含める必要があります
Ƭᴇcʜιᴇ007

8

DHCPサーバーが提供するDNSアドレスを使用するには:

netsh interface ipv4 set dns "Local Area Connection" dhcp

さらに、アドレス/マスク/ゲートウェイをDHCPのアドレス/マスク/ゲートウェイにリセットする場合:netsh interface ipv4 set address name = "Local Area Connection" source = dhcp
hello_earth

6

Windows 8または2012でPowershellスクリプトを使用して、次のような値を設定できます。

Set-DnsClientServerAddress -InterfaceAlias Wi-Fi -ServerAddresses "1.1.1.1","2.2.2.2"

ここで、wi-Fiは関心のあるインターフェイスの名前です。インターフェイスをリストするには、次を実行します。

Get-NetAdapter

DNSアドレスをリセットするには、DHCPを使用します。

Set-DnsClientServerAddress -InterfaceAlias wi-fi -ResetServerAddresses

このページに移動し、詳細な説明をご覧ください。

ここで使用するコマンドレットは、Windows 7などの以前のバージョンでは使用できないことに注意してください。


簡潔で、魅力のように機能します。ありがとう:)AWS Opsworksで特に便利です!
ガネーシュヘグデ

3

ここにあなたの新しい友人がいます:NirSoftのQuickSetDNSは、いつものように驚くべきものです。

スクリーンショット

また、コマンドラインで使用することもできます:) netshに対するこれらの利点:

  • 特に代替サーバーを設定するための簡単な構文
  • 特権の昇格を自動的に要求します


ほんのいくつかの注意事項:

  • IPv6の設定ではなく、IPv4の設定のみをサポートします
  • コマンドラインでは、フレンドリ名ではなくアダプタUUIDを使用する必要があります(「ローカルエリア接続」など) QuickSetDNS 1.21以降、接続名もサポートされています;)

上記と同じアプローチを使用するオープンソースのサンプルを次に示します。codeproject.com
Top-Master

1

WinXP(sp3ヘブライ語)のLogmanのバージョンに修正を追加すると、最後に2文字を削除する必要があるように思われるため、その他の奇妙なケースには「グローバル」な修正を追加しました。

:: Set primary and alternate DNS for IPv4 on Windows Server 2000/2003/2008 & Windows XP/Vista/7
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET adapterName=

FOR /F "tokens=* delims=:" %%a IN ('IPCONFIG ^| FIND /I "ETHERNET ADAPTER"') DO (
SET adapterName=%%a

REM Removes "Ethernet adapter" from the front of the adapter name
SET adapterName=!adapterName:~17!

REM WinXP Remove some weird trailing chars (don't know what they are)
FOR /l %%a IN (1,1,255) DO IF NOT "!adapterName:~-1!"==":" SET adapterName=!adapterName:~0,-1!

REM Removes the colon from the end of the adapter name
SET adapterName=!adapterName:~0,-1!
echo !adapterName!
GOTO:EOF
netsh interface ip set dns name="!adapterName!" static x.x.x.x primary
netsh interface ip add dns name="!adapterName!" x.x.x.x index=2
)

http://pastebin.com/9mbMR7sy


0

この回答はXP1からコピーされています。XP1がこの回答を投稿したい場合は、投稿してください。回答を削除します。

WMIC(Windows Management Instrumentationコマンドライン)を使用してDNSを変更する別の方法を次に示します。

コマンドを適用するには、管理者として実行する必要があります。

DNSサーバーをクリアします。

wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ()

1 DNSサーバーを設定します。

wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ("8.8.8.8")

2つのDNSサーバーを設定します。

wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ("8.8.8.8", "8.8.4.4")

特定のネットワークアダプターに2つのDNSサーバーを設定します。

wmic nicconfig where "(IPEnabled=TRUE) and (Description = 'Local Area Connection')" call SetDNSServerSearchOrder ("8.8.8.8", "8.8.4.4")

ドメイン検索リストを設定する別の例:

wmic nicconfig call SetDNSSuffixSearchOrder ("domain.tld")
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.