Anexar sufixos de DNS via prompt de comando do Windows


13

No meu trabalho, temos dois sufixos DNS específicos da conexão. lhs.local e cis.local. Estou tentando escrever um arquivo em lotes que cuide de muitas tarefas administrativas comuns que precisam ser executadas quando implantamos um computador e anexá-las é uma dessas tarefas.

Existe um comando para fazer isso programaticamente?


1
Por que você está (ab?) Usando TLDs da Zeroconf?
Ignacio Vazquez-Abrams

Por favor, não me inicie, lol. Por que sou eu quem foi pioneira em nossa iniciativa de criação de imagens quando tenho apenas o suporte de nível 2?
Chris Sobolewski

Respostas:


8

Via este post

Para adicionar remotamente um sufixo DNS a uma conexão TCP / IP, basta uma lista de endereços IP e o seguinte comando:

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

onde C:\iplist.txtcontém uma lista de endereços IP, separados por linha.

Outra maneira é adicionar via registro

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

Há uma entrada do Microsoft KB para o mesmo também.


6
Usar o método reg acima não funcionou para mim. Então, eu li o link da KB, que fala sobre definir o nome do valor para "SearchList" e não, por exemplo, "NV Domain". Usando / v SearchList trabalhou (note que vai espancar todos os domínios existentes para ter a certeza de tê-los na lista / d.
Nathan Kidd

2

Baseado na resposta de Sathya e em outros recursos, escrevi isto:

@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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.