Ajouter des suffixes DNS via l'invite de commande Windows

13

Dans mon travail, nous avons deux suffixes DNS spécifiques à la connexion. lhs.local et cis.local. J'essaie d'écrire un fichier de commandes qui s'occupera de la plupart des tâches administratives courantes qui doivent être effectuées lorsque nous déployons un ordinateur, et l'ajout de celles-ci est l'une de ces tâches.

Existe-t-il une commande pour le faire par programme?

Chris Sobolewski
la source
1
Pourquoi utilisez-vous (ab?) Des TLD Zeroconf?
Ignacio Vazquez-Abrams
S'il vous plaît ne me lancez pas, lol. Pourquoi suis-je celui qui a été le pionnier de notre initiative d'imagerie alors que je ne suis qu'un support de niveau 2?
Chris Sobolewski

Réponses:

8

Via ce post

Pour ajouter à distance un suffixe DNS à une connexion TCP / IP, il vous suffit d'avoir une liste d'adresses IP et la commande suivante:

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

C:\iplist.txtcontient une liste d'adresses IP, séparées par des lignes.

Une autre façon consiste à ajouter via le registre

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

Il existe également une entrée Microsoft KB pour la même chose.

Sathyajith Bhat
la source
6
L'utilisation de la méthode reg ci-dessus n'a pas fonctionné pour moi. J'ai donc lu le lien KB qui parle de définir le nom de la valeur sur "SearchList" et non par exemple "NV Domain". L'utilisation de / v SearchList a fonctionné (notez que cela encombrera tous les domaines existants, alors assurez-vous de les avoir dans la liste / d.
Nathan Kidd
2

Sur la base de la réponse de Sathya et d'autres ressources, j'ai écrit ceci:

@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
la source