Agregar sufijos dns a través del símbolo del sistema de Windows

13

En mi trabajo, tenemos dos sufijos DNS de conexión específicos. lhs.local y cis.local. Estoy tratando de escribir un archivo por lotes que se encargará de muchas de las tareas administrativas comunes que deben realizarse cuando implementamos una computadora, y agregarlas es una de esas tareas.

¿Hay un comando para hacer esto programáticamente?

Chris Sobolewski
fuente
1
¿Por qué estás (ab?) Usando Zeroconf TLDs?
Ignacio Vazquez-Abrams
Por favor, no me hagas empezar, jajaja. ¿Por qué soy yo el pionero de nuestra iniciativa de imágenes cuando solo estoy en el soporte de nivel 2?
Chris Sobolewski

Respuestas:

8

A través de esta publicación

Para agregar un sufijo DNS a una conexión TCP / IP de forma remota, todo lo que necesita es una lista de direcciones IP y el siguiente comando:

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

donde C:\iplist.txtcontiene una lista de direcciones IP, separadas por líneas.

Otra forma es agregar a través del registro

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

También hay una entrada de Microsoft KB para lo mismo.

Sathyajith Bhat
fuente
66
Usar el método de registro anterior no funcionó para mí. Así que leí el enlace KB que habla de establecer el nombre del valor en "SearchList", por ejemplo, "NV Domain". El uso de / v SearchList funcionó (tenga en cuenta que bloqueará todos los dominios existentes, así que asegúrese de tenerlos en la lista / d.
Nathan Kidd
2

Basado en la respuesta de Sathya y otros recursos, escribí esto:

@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
fuente