Como posso definir / alterar DNS usando a linha de comandos no windows 8
Como É Que posso definir a minha configuração do DNS usando a linha de comandos ou o ficheiro bat no windows 8
tentei isto:
netsh interface ip set dns name="Local Area Connection" source=static addr=none
Mas não funcionou.
9 answers
Primeiro, o nome da rede é provavelmente "Ethernet", não"Ligação Local". Para descobrir o nome você pode fazer isso:
netsh interface show interface
Que irá mostrar o nome sob a coluna" Nome da Interface " (mostrado aqui a negrito):
Admin State State Type Interface Name ------------------------------------------------------------------------- Enabled Connected Dedicated Ethernet
Agora pode alterar o dns primário( índice=1), assumindo que a sua interface é estática (não usando o dhcp):
netsh interface ipv4 add dnsserver "Ethernet" address=192.168.x.x index=1
2018 Update - o comando irá funcionar com dnsserver
(singular) ou dnsservers
(plural). O exemplo a seguir usa o este último e também é válido:
netsh interface ipv4 add dnsservers "Ethernet" address=192.168.x.x index=1
Para mudar o DNS para automático via comando, poderá executar o seguinte comando:
netsh interface ip set dns "Local Area Connection" dhcp
Há pouca diferença no comando de adicionar e alterar DNS-IPs:
A Adicionar:
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
- aqui, para saber "Nome da Interface de rede", escreva comando
netsh interface show interface
- 8.8.8.8.8 é o servidor DNS recursivo do Google, use-o, se o seu não está a funcionar
Para definir/alterar: (como OP perguntou isto)
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
O último parâmetro pode ser
none
: desactivar o DNS,both
: definido para o primário e DNS secundários ambos, primário: apenas para DNS primários. Você pode notar aqui que não estamos usando index-parameter como fizemos na adição de DNS.No lugar de
static
você pode digitardhcp
para tornar a configuração DNS automática, mas outro parâmetro não será necessário.
Nota: testado no windows 8,8. 1 e 10.
Aqui está outra maneira de mudar o DNS usando a linha de comandos WMIC (Windows Management Instrumentation).
Os comandos devem ser executados como administrador para serem aplicados.
Limpar os servidores DNS:
wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ()
Definir 1 servidor DNS:
wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ("8.8.8.8")
Definir 2 servidores DNS:
wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ("8.8.8.8", "8.8.4.4")
Defina 2 servidores DNS num adaptador de rede em particular:
wmic nicconfig where "(IPEnabled=TRUE) and (Description = 'Local Area Connection')" call SetDNSServerSearchOrder ("8.8.8.8", "8.8.4.4")
Outro exemplo para definir a lista de pesquisa de domínios:
wmic nicconfig call SetDNSSuffixSearchOrder ("domain.tld")
Escrevi este programa para mudar os servidores de DNS de todas as interfaces actualmente activas para um endereço específico:
@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
Nenhuma das respostas está a funcionar para mim no Windows 10, por isso aqui está o que eu uso:
@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
Isto usa o Google DNS. Você pode obter o nome da interface com o comando netsh int show interface
Ficheiro em lote para configurar um novo servidor de 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%
Aqui está o seu novo amigo: QuickSetDNS , por NirSoft, incrível como de costume.
Também pode ser usado na linha de comandos: ) com estas vantagens sobre a netsh:
- sintaxe mais fácil, em particular para definir o servidor alternativo
- pede automaticamente elevação de privilégios
apenas algumas ressalvas:
- suporta apenas a configuração do IPv4, não do IPv6
-
na linha de comando, o UUID do adaptador deve ser usado, não o nome Amigável (Por exemplo, "Local Area Connection")desde o QuickSetDNS 1. 21, os nomes das ligações também são suportados;)
Agora pode alterar o dns primário( índice=1), assumindo que a sua interface é estática (não usando o dhcp)
Pode definir os seus servidores de DNS de forma estática, mesmo que use o DHCP para obter o seu endereço IP.
Exemplo no Windows 7 para adicionar dois servidores DN, o comando é o seguinte:
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