Comment définir mes paramètres DNS à l'aide de l'invite de commande ou du fichier bat sous Windows 8
J'ai essayé ceci:
netsh interface ip set dns name="Local Area Connection" source=static addr=none
mais pas travaillé.
Premièrement, le nom du réseau est probablement "Ethernet", pas "Connexion au réseau local". Pour trouver le nom, vous pouvez le faire:
netsh interface show interface
Ce qui affichera le nom dans la colonne "Nom de l'interface" (en gras ici):
État de l'état d'administration Nom de l'interface ---------------------------------- --------------------------------------- Activé Connecté Dédié Ethernet
Maintenant, vous pouvez changer le DNS principal (index = 1), en supposant que votre interface soit statique (sans utiliser dhcp):
netsh interface ipv4 add dnsserver "Ethernet" address=192.168.x.x index=1
Mise à jour 2018 - La commande fonctionnera avec dnsserver
(singulier) ou dnsservers
(pluriel). L'exemple suivant utilise ce dernier et est également valide:
interface netsh ipv4 add dnsservers adresse "Ethernet" = 192.168.x.x index = 1
Pour changer le DNS en commande automatique via, vous pouvez exécuter la commande suivante:
netsh interface ip set dns "Local Area Connection" dhcp
Il y a peu de différence dans la commande de ajoutant ET changeant DNS-IPs:
à ajouter:
_Syntax:
netsh interface ipv4 add dnsserver "Network Interface Name" dns.server.ip index=1(for primary)2(for secondary)
Eg:
netsh interface ipv4 add dnsserver "Ethernet" 8.8.8.8 index=1
_
netsh interface show interface
Pour définir/modifier: (comme l'OP l'a demandé)
_Syntax:
netsh interface ipv4 set dnsservers "Network Interface Name" static dns.server.ip primary
Eg:
netsh interface ipv4 set dnsservers "Wi-Fi" static 8.8.4.4 primary
netsh interface ipv4 set dnsservers "Wi-Fi" dhcp
_
Le dernier paramètre peut être none
: désactive le DNS, both
: défini pour les DNS primaire et secondaire, primaire: pour le DNS principal uniquement. Vous pouvez noter ici que nous n'utilisons pas index-paramètre comme nous l'avons fait pour ajouter DNS.
À la place de static
, vous pouvez taper dhcp
pour rendre le réglage DNS automatique, mais aucun paramètre supplémentaire ne sera nécessaire.
Note: Testé sous Windows 8,8.1 & 10.
Voici un autre moyen de changer de DNS en utilisant WMIC (ligne de commande de Windows Management Instrumentation).
Les commandes doivent être exécutées en tant qu'administrateur pour être appliquées.
Effacer les serveurs DNS:
wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ()
Définir 1 serveur DNS:
wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ("8.8.8.8")
Définissez 2 serveurs DNS:
wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ("8.8.8.8", "8.8.4.4")
Définissez 2 serveurs DNS sur une carte réseau particulière:
wmic nicconfig where "(IPEnabled=TRUE) and (Description = 'Local Area Connection')" call SetDNSServerSearchOrder ("8.8.8.8", "8.8.4.4")
Un autre exemple pour définir la liste de recherche de domaine:
wmic nicconfig call SetDNSSuffixSearchOrder ("domain.tld")
J'ai écrit ce script pour basculer les serveurs DNS de toutes les interfaces actuellement activées vers une adresse spécifique:
@echo off
:: Google DNS
set DNS1=8.8.8.8
set DNS2=8.8.4.4
for /f "tokens=1,2,3*" %%i in ('netsh int show interface') do (
if %%i equ Enabled (
echo Changing "%%l" : %DNS1% + %DNS2%
netsh int ipv4 set dns name="%%l" static %DNS1% primary validate=no
netsh int ipv4 add dns name="%%l" %DNS2% index=2 validate=no
)
)
ipconfig /flushdns
:EOF
Aucune des réponses ne fonctionne pour moi sur Windows 10, alors voici ce que j'utilise:
@echo off
set DNS1=8.8.8.8
set DNS2=8.8.4.4
set INTERFACE=Ethernet
netsh int ipv4 set dns name="%INTERFACE%" static %DNS1% primary validate=no
netsh int ipv4 add dns name="%INTERFACE%" %DNS2% index=2
ipconfig /flushdns
pause
Ceci utilise Google DNS. Vous pouvez obtenir le nom de l'interface avec la commande netsh int show interface
Fichier de commandes pour la configuration d'un nouveau serveur DNS
@echo off
rem usage: setdns <dnsserver> <interface>
rem default dsnserver is dhcp
rem default interface is Wi-Fi
set dnsserver="%1"
if %dnsserver%=="" set dnsserver="dhcp"
set interface="%2"
if %interface%=="" set interface="Wi-Fi"
echo Showing current DNS setting for interface a%interface%
netsh interface ipv4 show dnsserver %interface%
echo Changing dnsserver on interface %interface% to %dnsserver%
if %dnsserver% == "dhcp" netsh interface ipv4 set dnsserver %interface% %dnsserver%
if NOT %dnsserver% == "dhcp" netsh interface ipv4 add dnsserver %interface% address=%dnsserver% index=1
echo Showing new DNS setting for interface %interface%
netsh interface ipv4 show dnsserver %interface%
Voici votre nouvel ami: QuickSetDNS , de NirSoft, étonnant comme d'habitude.
Il peut également être utilisé en ligne de commande :) avec ces avantages par rapport à netsh:
Quelques mises en garde:
Maintenant, vous pouvez changer le DNS principal (index = 1), en supposant que votre interface soit statique (ne pas utiliser dhcp)
Vous pouvez définir vos serveurs DNS de manière statique même si vous utilisez DHCP pour obtenir votre adresse IP.
Exemple sous Windows 7 pour ajouter deux serveurs DN, la commande est la suivante:
netsh interface ipv4 add dns "Local Area Connection" address=192.168.x.x index=1 netsh interface ipv4 add dns "Local Area Connection" address=192.168.x.x index=2