web-dev-qa-db-ja.com

WindowsコマンドプロンプトからDNSサフィックスを追加する

私の仕事では、2つの接続固有のDNSサフィックスがあります。 lhs.localおよびcis.local。コンピューターを展開するときに実行する必要のある一般的な管理タスクの多くを処理するバッチファイルを記述しようとしていますが、これらのタスクの1つが追加されます。

これをプログラムで実行するコマンドはありますか?

13

経由 この投稿

DNSサフィックスをTCP/IP接続にリモートで追加するために必要なのは、IPアドレスのリストと次のコマンドだけです。

wmic /USER:administrator /PASSWORD:adminpassword /node:@c:\iplist.txt nicconfig call SetDNSSuffixSearchOrder (mydomain.com)

どこ C:\iplist.txtには、IPアドレスのリストが含まれ、行で区切られています。

別の方法は、 レジストリを介して追加することです

reg add HKLM\System\currentcontrolset\services\tcpip\parameters /v “NV Domain” /d “mydomain.com” /f

同様の Microsoft KBエントリ もあります。

8
Sathyajith Bhat

サティヤの答えと他のリソースに基づいて、私はこれを書きました:

@echo off
SETLOCAL EnableDelayedExpansion

:: Input here the additional suffix
set suffix=your.own.suffix

:: Get existing DNS suffixes
FOR /F "usebackq tokens=1,2* delims= " %%A in (`reg QUERY HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters /V SearchList ^| findstr REG_SZ`) do ( 
    set OLD_DNS=%%C
)

:: Check if it starts with our suffix
set OK=NO
FOR /F "tokens=1,2* delims=," %%A in ("%OLD_DNS%") do (
    if "%%A" == "%suffix%" set OK=YES
)

:: Add our suffix first if it's not there
if "%OK%" == "NO" (
    echo Conf KO: %OLD_DNS%
    reg add HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters /V SearchList /D "%suffix%,%OLD_DNS%" /F
) else (
    echo Conf OK: %OLD_DNS%
)

ipconfig /flushdns
2
Benoit Duffez