स्क्रिप्ट के साथ DNS बदलें


28

मुझे DNS सर्वर पते को बार-बार बदलने की आवश्यकता है, और अब मैं इसे 'नेटवर्क और साझाकरण केंद्र' - 'स्थानीय क्षेत्र कनेक्शन' - गुण - ipv4 - और फिर DNS नंबर टाइप करके करता हूं।

वहाँ यह करने के लिए एक तेज़ तरीका है? क्या मैं इसे बैच फ़ाइल या एक पॉवरशेल स्क्रिप्ट के साथ कर सकता हूँ? क्या DNS को बदलने के लिए कंसोल कमांड में बनाया गया है?

जवाबों:


37

प्राथमिक DNS मान:

netsh interface ipv4 set dns "Local Area Connection" static 192.168.0.2

द्वितीयक मूल्य:

netsh interface ipv4 add dns "Local Area Connection" 192.168.0.3 index=2

जो महान काम करता है यदि कनेक्शन का नाम सही है। यदि नाम "स्थानीय क्षेत्र कनेक्शन" नहीं है, तो यह काम नहीं करेगा। यदि आप XP चला रहे हैं तो आपको "ipv4" को "ip" में बदलना होगा। IPv6 का भी उपयोग किया जा सकता है।

सबनेट मास्क, IP पता और गेटवे सेट करें:

netsh interface ipv4 set address name="Local Area Connection" source=static addr=192.168.1.10 mask=255.255.255.0 gateway=192.168.0.1

नेटवर्क कनेक्शन खोजने के लिए आप cmd लाइन से ipconfig का उपयोग कर सकते हैं। लेकिन आप एक संक्षिप्त ipconfig परिणाम के लिए निम्नलिखित का उपयोग कर सकते हैं:

ipconfig | find /I "Ethernet adapter"

उपरोक्त ipconfig cmd का उपयोग करके हम कनेक्शन के माध्यम से लूप कर सकते हैं ( सोर्स कोड ) और डीएनएस सर्वर सेट करें:

:: Set primary and alternate DNS for IPv4 on Windows Server 2000/2003/2008 & 
:: Windows XP/Vista/7
@ECHO OFF
SETLOCAL EnableDelayedExpansion

SET adapterName=

FOR /F "tokens=* delims=:" %%a IN ('IPCONFIG ^| FIND /I "ETHERNET ADAPTER"') DO (
SET adapterName=%%a

REM Removes "Ethernet adapter" from the front of the adapter name
SET adapterName=!adapterName:~17!

REM Removes the colon from the end of the adapter name
SET adapterName=!adapterName:~0,-1!

netsh interface ipv4 set dns name="!adapterName!" static 192.168.0.2 primary
netsh interface ipv4 add dns name="!adapterName!" 192.168.0.3 index=2
)

ipconfig /flushdns

:EOF

3
बहुत बढ़िया जवाब। आपको शामिल करना चाहिए सूत्रों का कहना है उद्धरण और कोड जैसी चीजों के लिए।
Ƭᴇcʜιᴇ007

8

डीएचसीपी सर्वर द्वारा प्रदान किए गए DNS पते का उपयोग करने के लिए:

netsh interface ipv4 set dns "Local Area Connection" dhcp

प्लस यदि आप डीएचसीपी के पते / मुखौटा / प्रवेश द्वार को रीसेट करना चाहते हैं: netsh इंटरफ़ेस ipv4 सेट पता नाम = "स्थानीय क्षेत्र कनेक्शन" स्रोत = dhcp
hello_earth

6

इसका उपयोग करना शक्ति कोशिका विंडोज 8 या 2012 में स्क्रिप्ट, आप इस तरह से मान सेट कर सकते हैं:

Set-DnsClientServerAddress -InterfaceAlias Wi-Fi -ServerAddresses "1.1.1.1","2.2.2.2"

कहा पे वाई - फाई उस इंटरफ़ेस का नाम है जिसमें आप रुचि रखते हैं। आप चल कर इंटरफेस को सूचीबद्ध कर सकते हैं:

Get-NetAdapter

DNS पते रीसेट करने के लिए और यह DHCP का उपयोग करता है:

Set-DnsClientServerAddress -InterfaceAlias wi-fi -ResetServerAddresses

के लिए जाओ यह पन्ना पूरा विवरण देखने के लिए।

ध्यान दें कि यहां उपयोग किए गए कॉमंडलेट विंडोज 7 जैसे पुराने संस्करणों में उपलब्ध नहीं हैं।


संक्षिप्त, एक आकर्षण की तरह काम करता है। धन्यवाद :) AWS Opsworks पर विशेष रूप से उपयोगी!
Ganesh Hegde

1

WinXP (sp3 hebrew) के लिए लोगमैन के संस्करण में एक फिक्स जोड़ना, ऐसा लगता है कि अंत में 2 चार्ट को हटाने की आवश्यकता है ताकि किसी अन्य अजीब मामले के लिए "वैश्विक" तरह का फिक्स जोड़ा जाए।

:: Set primary and alternate DNS for IPv4 on Windows Server 2000/2003/2008 & Windows XP/Vista/7
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET adapterName=

FOR /F "tokens=* delims=:" %%a IN ('IPCONFIG ^| FIND /I "ETHERNET ADAPTER"') DO (
SET adapterName=%%a

REM Removes "Ethernet adapter" from the front of the adapter name
SET adapterName=!adapterName:~17!

REM WinXP Remove some weird trailing chars (don't know what they are)
FOR /l %%a IN (1,1,255) DO IF NOT "!adapterName:~-1!"==":" SET adapterName=!adapterName:~0,-1!

REM Removes the colon from the end of the adapter name
SET adapterName=!adapterName:~0,-1!
echo !adapterName!
GOTO:EOF
netsh interface ip set dns name="!adapterName!" static x.x.x.x primary
netsh interface ip add dns name="!adapterName!" x.x.x.x index=2
)

http://pastebin.com/9mbMR7sy


1

यहाँ आपका नया दोस्त है: QuickSetDNS , NirSoft द्वारा, हमेशा की तरह अद्भुत।

screenshot

यह कमांड लाइन में भी इस्तेमाल किया जा सकता है :) netsh पर इन फायदों के साथ:

  • आसान वाक्यविन्यास, विशेष रूप से वैकल्पिक सर्वर की स्थापना के लिए
  • स्वचालित रूप से विशेषाधिकार बढ़ाने के लिए कहता है


बस कुछ चेतावनी:

  • IPv4 की केवल सेटिंग का समर्थन करता है, IPv6 का नहीं
  • कमांड लाइन में, एडाप्टर यूयूआईडी का उपयोग किया जाना चाहिए, न कि अनुकूल नाम (जैसे "स्थानीय क्षेत्र कनेक्शन") QuickSetDNS 1.21 के बाद से, कनेक्शन नाम भी समर्थित हैं;)

0

यह उत्तर XP1 से कॉपी किया गया है यहाँ । यदि XP1 इस उत्तर को पोस्ट करना चाहता है, तो कृपया ऐसा करें और मैं अपना उत्तर हटा दूंगा।

यहाँ WMIC (Windows मैनेजमेंट इंस्ट्रूमेंटेशन कमांड-लाइन) का उपयोग करके DNS को बदलने का एक और तरीका है।

आदेशों को लागू करने के लिए व्यवस्थापक के रूप में चलाया जाना चाहिए।

DNS सर्वर साफ़ करें:

wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ()

1 DNS सर्वर सेट करें:

wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ("8.8.8.8")

2 DNS सर्वर सेट करें:

wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ("8.8.8.8", "8.8.4.4")

एक विशेष नेटवर्क एडेप्टर पर 2 DNS सर्वर सेट करें:

wmic nicconfig where "(IPEnabled=TRUE) and (Description = 'Local Area Connection')" call SetDNSServerSearchOrder ("8.8.8.8", "8.8.4.4")

डोमेन खोज सूची सेट करने के लिए एक और उदाहरण:

wmic nicconfig call SetDNSSuffixSearchOrder ("domain.tld")
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.