Dołącz sufiksy dns za pomocą wiersza polecenia systemu Windows

13

W mojej pracy mamy dwa sufiksy DNS specyficzne dla połączenia. lhs.local i cis.local. Próbuję napisać plik wsadowy, który zajmie się wieloma typowymi zadaniami administracyjnymi, które należy wykonać podczas wdrażania komputera, a dołączenie ich jest jednym z tych zadań.

Czy istnieje polecenie, aby to zrobić programowo?

Chris Sobolewski
źródło
1
Dlaczego (ab?) Używasz Zeroconf TLD?
Ignacio Vazquez-Abrams
Proszę, nie zaczynaj mnie, lol. Dlaczego jestem tym, który był pionierem naszej inicjatywy w dziedzinie obrazowania, gdy jestem tylko wsparciem poziomu 2?
Chris Sobolewski,

Odpowiedzi:

8

Przez ten post

Aby zdalnie dodać sufiks DNS do połączenia TCP / IP, wystarczy lista adresów IP i następujące polecenie:

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

gdzie C:\iplist.txtzawiera listę adresów IP, rozdzielonych wierszami.

Innym sposobem jest dodanie za pomocą rejestru

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

Istnieje również wpis Microsoft KB dla tego samego.

Sathyajith Bhat
źródło
6
Zastosowanie powyższej metody reg nie działało dla mnie. Czytam więc link KB, który mówi o ustawianiu nazwy wartości na „SearchList”, a nie np. „NV Domain”. Korzystanie z / v SearchList zadziałało (pamiętaj, że spowoduje to zablokowanie istniejących domen, więc upewnij się, że znajdują się na liście / d.
Nathan Kidd
2

Na podstawie odpowiedzi Sathya i innych zasobów napisałem:

@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
Benoit Duffez
źródło