Я использую OpenVPN в системе Linux, и мне нужен способ передать этот параметр клиенту, чтобы иметь доступ к machine.example.com внутри * .example.com. Я пытался использовать конфигурацию openvpn для этого , и кажется, что, если клиент использует Windows, не работает.
Чтобы решить эту проблему, мне нужен файл bat, чтобы изменить путь поиска DNS на клиентской машине Windows после установления соединения vpn.
wmic nicconfig where "description='NAME OF THE ADAPTER HERE'" call setdnsserversearchorder("10.0.0.1", "10.0.0.2")
Чтобы увидеть все другие интересные вещи, которые вы можете делать с этим классом (Win32_NetworkAdapterConfiguration), см. Вот или ознакомьтесь с документацией по методу.
wmic nicconfig call /?
РЕДАКТИРОВАТЬ: Как я указал позже, вы, вероятно, захотите вместо этого одно из них:
wmic nicconfig where "description='NAME OF THE ADAPTER HERE'" call setdnsdomain("yourdomain.tld")
(так что yourdomain.tld похож на «microsoft.com» в официальной документации).
ИЛИ
Если вы хотите изменить порядок поиска доменов (если у вас их несколько, попробуйте setdnssuffixsearchorder()
.
wmic nicconfig where "description='NAME OF THE ADAPTER HERE'" call setdnssuffixsearchorder("yourdomain1.tld", "yourdomain2.tld")
Если вы хотите применить это к каждой карте или адаптеру, вы можете просто сказать, что это не null. Я не тестировал это и не знаю, как это повлияет на ОС и виртуальные адаптеры на основе VPN в вашей системе, поэтому пожалуйста, проверьте это перед уничтожение производственной коробки). Итак, вернемся к приведенному выше примеру.
wmic nicconfig where "description=!=null" call setdnssuffixsearchorder("yourdomain1.tld", "yourdomain2.tld")
Снова обратите внимание на предостережение выше. Итак, если вы хотите, чтобы это было в быстром и грязном пакетном файле, просто сделайте что-то вроде этого (для конкретного адаптера на этом этапе я хочу, чтобы вы знали, нужно ли вам применять ко всем, прежде чем копировать один из моих неполноценных скриптов . Я сделалдовольно навороченный для вас на Pastebin. Я надеюсь, что это помогает. Я скинул его на скрин ниже. Убедитесь, что вы указали имя вашего адаптера и имя вашего домена при использовании командного файла, иначе он будет совершенно неуравновешенным с сумасшедшими результатами, которые приведут к сбою вашего компьютера.
@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 также есть опция, которая называется примерно так: Добавление основного DNS-суффикса и суффикса подключения это может помочь.