通过Windows命令提示符附加dns后缀


13

在我的工作中,我们有两个特定于连接的DNS后缀。lhs.local和cis.local。我正在尝试编写一个批处理文件,该文件将处理部署计算机时需要完成的许多常见管理任务,附加这些是这些任务之一。

有命令以编程方式执行此操作吗?


1
您为什么(ab?)使用Zeroconf TLD?
伊格纳西奥·巴斯克斯

请不要让我开始,大声笑。当我仅获得第二层支持时,为什么我是率先提出成像计划的人?
克里斯·索博洛夫斯基

Answers:


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 2013年

2

基于Sathya的答案和其他资源,我这样写:

@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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.