Aggiungi suffissi DNS tramite il prompt dei comandi di Windows


13

Nel mio lavoro, abbiamo due suffissi DNS specifici per la connessione. lhs.local e cis.local. Sto cercando di scrivere un file batch che si occuperà di molte delle attività amministrative comuni che devono essere eseguite quando si distribuisce un computer e aggiungere queste è una di quelle attività.

C'è un comando per farlo programmaticamente?


1
Perché (ab?) Stai usando i TLD Zeroconf?
Ignacio Vazquez-Abrams,

Per favore, non farmi iniziare, lol. Perché sono io che sono stato il pioniere della nostra iniziativa di imaging quando sono solo supporto di livello 2?
Chris Sobolewski,

Risposte:


8

Tramite questo post

Per aggiungere un suffisso DNS a una connessione TCP / IP in remoto, è sufficiente un elenco di indirizzi IP e il seguente comando:

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

dove C:\iplist.txtcontiene un elenco di indirizzi IP, separati da riga.

Un altro modo è quello di aggiungere tramite il registro

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

C'è anche una voce di Microsoft KB per lo stesso.


6
L'uso del metodo reg sopra non ha funzionato per me. Quindi ho letto il link KB che parla di non impostare il nome del valore su "SearchList", ad esempio "Dominio NV". Utilizzando / v SearchList ha funzionato (nota che ostruirà tutti i domini esistenti, quindi assicurati di averli nell'elenco / d.
Nathan Kidd

2

Sulla base della risposta di Sathya e di altre risorse, ho scritto questo:

@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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.