Додайте суфікси dns через командний рядок Windows


13

У моїй роботі у нас є два специфічні для DNS суфікси. lhs.local і cis.local. Я намагаюся написати пакетний файл, який допоможе вирішити багато загальних адміністративних завдань, які потрібно виконати під час розгортання комп’ютера, і додавання їх є одним із таких завдань.

Чи є команда робити це програмно?


1
Чому ви (аб?) Користуєтеся Zeroconf TLD?
Ігнасіо Васкес-Абрамс

Будь ласка, не запускайте мене, лол Чому я є тим, хто став першим нашою ініціативою візуалізації, коли я лише підтримую 2-й рівень?
Кріс Соболевський

Відповіді:


8

Через цю посаду

Щоб дистанційно додати DNS-суфікс до TCP / IP-з'єднання, все, що вам потрібно, - це список IP-адрес та наступна команда:

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

де C:\iplist.txtміститься список IP-адрес, розділених рядками.

Інший спосіб - додавання через реєстр

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

Також є запис Microsoft KB .


6
Використання методу reg вище для мене не вийшло. Тому я читаю посилання KB, в якому йдеться про встановлення назви значення "SearchList", наприклад, "NV Domain". Використовуючи / v SearchList працював (зауважте, що він буде приховувати будь-які існуючі домени, тому обов'язково їх буде включено до списку / d.
Nathan Kidd

2

Виходячи з відповіді Саті та інших ресурсів, я написав це:

@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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.