Tambahkan sufiks dns melalui command prompt windows

13

Di tempat kerja saya, kami memiliki dua sufiks DNS khusus koneksi. lhs.local dan cis.local. Saya mencoba untuk menulis file batch yang akan menangani banyak tugas administrasi umum yang perlu dilakukan ketika kami menggunakan komputer, dan menambahkan ini adalah salah satu tugas tersebut.

Apakah ada perintah untuk melakukan ini secara terprogram?

Chris Sobolewski
sumber
1
Mengapa Anda (ab?) Menggunakan Zeroconf TLDs?
Ignacio Vazquez-Abrams
Tolong jangan mulai saya, lol. Mengapa saya orang yang memelopori inisiatif pencitraan kami ketika saya hanya dukungan tingkat 2?
Chris Sobolewski

Jawaban:

8

Melalui pos ini

Untuk menambahkan akhiran DNS ke koneksi TCP / IP dari jarak jauh, yang Anda butuhkan hanyalah daftar alamat IP dan perintah berikut:

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

di mana C:\iplist.txtberisi daftar alamat IP, jalur dipisahkan.

Cara lain adalah menambahkan melalui registri

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

Ada entri Microsoft KB untuk hal yang sama juga.

Sathyajith Bhat
sumber
6
Menggunakan metode reg di atas tidak berhasil untuk saya. Jadi saya membaca tautan KB yang berbicara tentang pengaturan nilai nama ke "SearchList" tidak, misalnya "NV Domain". Menggunakan / v SearchList berfungsi (perhatikan bahwa itu akan menghancurkan semua domain yang ada jadi pastikan untuk memasukkannya dalam daftar / d.
Nathan Kidd
2

Berdasarkan jawaban Sathya dan sumber daya lainnya, saya menulis ini:

@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
sumber