Windows上的DNSsearchpath

我在Linux上使用OpenVPN,我需要一个方法将这个设置推送到客户端,以便能够到达* .example.com.au中的machine.example.com。我尝试使用openvpn的configuration来做到这一点,似乎如果客户端正在使用Windows不起作用。

为了解决这个问题,在vpn连接build立后,我需要一个bat文件来改变windows客户机上的dnssearchpath。

wmic nicconfig where "description='NAME OF THE ADAPTER HERE'" call setdnsserversearchorder("10.0.0.1", "10.0.0.2")

要查看所有可以用这个类(Win32_NetworkAdapterConfiguration)完成的其他function,请参阅此处或查看方法文档。

wmic nicconfig call /?

编辑:正如我后面指出的,你可能想要其中的一个:

wmic nicconfig where "description='NAME OF THE ADAPTER HERE'" call setdnsdomain("yourdomain.tld") (so yourdomain.tld就像官方文档中的“microsoft.com”)。

要么

如果你想改变你search的域的顺序(如果你有一堆,你尝试setdnssuffixsearchorder()

wmic nicconfig where "description='NAME OF THE ADAPTER HERE'" call setdnssuffixsearchorder("yourdomain1.tld", "yourdomain2.tld")

如果你想把它应用到每张卡片或适配器,你可以说任何不是null的人。 我没有testing过这个,也不知道系统上的操作系统和基于VPN的虚拟适配器的影响,所以销毁产品之前testing一下)。 所以,重新回顾一下上面的例子。

wmic nicconfig where "description=!=null" call setdnssuffixsearchorder("yourdomain1.tld", "yourdomain2.tld")

再次,看看上面的警告。 所以,如果你想在一个快速和脏的batch file中,只需要做这样的事情(对于一个特定的适配器在这一点上,我想让你知道,如果你需要申请所有之前,你复制我的一半的脚本。我在Pastebin上为你做了一个很垃圾的东西,希望它有帮助,我把它扔到了下面的屏幕上,确保在引用你的域名时引用你的域名,将最疯狂的结果,将您的电脑bork。

 @ECHO OFF IF NOT %1=="" GOTO CHECKPARAM ECHO You did not mention an adapter for me to configure. ECHO Goodbye! GOTO :EOF :CHECKPARAM REM Make sure that other than setting the adapter name, REM you actually have a domain set. IF NOT %2=="" GOTO CONFIGDNS ECHO You did not supply a domain you want configured. ECHO Goodbye! GOTO :EOF :CONFIGDNS %WINDIR%\system32\wmic.exe nicconifg "where description='%~1'" call setdnsdomain("%~2") IF %ERRORLEVEL%==0 GOTO :EOF ECHO Uh-oh. WMIC seems to have not exited gracefully. ECHO The error code was %ERRORLEVEL%. ECHO Goodbye! :EOF 

我想你可以用wmic来做,但我不知道如何。

Windows的每个版本都有一个选项,如Append主要和连接特定的DNS后缀可能有帮助。