Compartilhar via


Shell de Rede (netsh)

O shell de rede (netsh) é um utilitário de linha de comando versátil e abrangente para configurar, gerenciar e monitorar componentes de rede e funções de servidor em sistemas Windows e Windows Server. Com netsh, você pode exibir e modificar as configurações de rede, automatizar tarefas e solucionar problemas de rede local ou remotamente.

Em muitos cenários, os comandos netsh oferecem funcionalidade equivalente aos snap-ins do Microsoft Management Console (MMC) para gerenciar recursos e funções de servidor de rede. Isso permite que os administradores executem tarefas de configuração e gerenciamento por meio da interface MMC gráfica ou usando a automação de linha de comando.

Por exemplo, você pode configurar o NPS Servidor de Políticas de Rede usando o snap-in do MMC do NPS ou os comandos netsh no contexto netsh nps do netsh nps. Além disso, há comandos netsh para tecnologias de rede, como para IPv6, ponte de rede e RPC (Chamada de Procedimento Remoto), que não estão disponíveis no Windows Server como um snap-in do MMC.

Important

É recomendável que você use o Windows PowerShell para gerenciar tecnologias de rede no Windows e no Windows Server em vez de netsh.

Sintaxe de exemplo

netsh [-a <Aliasfile>] [-c <Context>] [-r <RemoteMachine>] [-u <DomainName>\<Username>] [-p <Password> | *] [Command> | -f <ScriptFile>]

Os parâmetros a seguir são opcionais.

Parameter Description
-a Especifica que você deseja retornar ao shell netsh depois de executar um arquivo de alias. Um arquivo de alias é o arquivo de texto que contém um ou mais comandos netsh.
-c Insere o contexto netsh especificado. O contexto representa um conjunto específico de comandos disponíveis relacionados a um recurso ou função específico.
-r Especifica que você deseja que o comando seja executado em um computador remoto usando seu nome de computador, um FQDN (nome de domínio totalmente qualificado) ou um endereço IP. O serviço registro remoto deve estar em execução no computador remoto. Se não estiver em execução, o Windows exibirá uma mensagem de erro "Caminho de Rede Não Encontrado".

Se você especificar -r seguido por outro comando, o netsh executará o comando no computador remoto e retornará ao prompt de comando. Se você especificar -r sem outro comando, o netsh será aberto no modo remoto. O processo é semelhante ao uso do comando set machine no shell do netsh. Ao usar -r, você define o computador de destino apenas para a instância atual do netsh.
-u Especifica que você deseja executar o comando netsh em uma conta de usuário específica usando DomainName\Username o formato.
-p Especifica que você deseja fornecer uma senha para a conta de usuário. Se * for usado, isso especifica que você deseja inserir a senha com segurança.
Command Este é o comando netsh que você deseja executar.
-f Especifica que você deseja sair do netsh depois de executar os comandos do arquivo de script fornecido.

Se o valor da cadeia de caracteres contiver espaços entre caracteres, você deverá colocar o valor da cadeia de caracteres entre aspas. Por exemplo, -r "contoso remote device". Depois que você sair e entrar novamente netsh, o computador de destino será redefinido como o computador local. Você pode executar comandos netsh em um computador remoto especificando um nome de computador armazenado em WINS, um nome UNC, um nome de Internet a ser resolvido pelo servidor DNS ou um endereço IP.

Note

Para usar determinados comandos netsh, como os netsh firewall comandos remotamente em outro computador usando o parâmetro netsh -r , o serviço registro remoto deve estar em execução no computador remoto. Se esse serviço não estiver em execução, você poderá receber uma mensagem de erro de comunicação de rede.

Executar comandos netsh

Executar netsh comandos pode ser feito usando um prompt de comando elevado ou uma janela do PowerShell. Você pode alterar para o contexto que contém o comando que deseja usar dependendo dos componentes de rede instalados.

Por exemplo, se você digitar netsh, será levado diretamente para o shell de rede. Uma vez aqui, se você digitar dhcp e pressionar Enter, você será levado para o menu de contexto para dhcpclient comandos.

Contextos de comando

O netsh interage com outros componentes do sistema operacional usando arquivos DLL (biblioteca de vínculo dinâmico). Cada DLL auxiliar do netsh fornece um amplo conjunto de recursos chamado um contexto, que é um grupo de comandos específico para uma função de servidor de rede ou recurso. Esses contextos ampliam a funcionalidade do netsh fornecendo suporte de configuração e monitoramento para um ou mais serviços, utilitários ou protocolos.

Por exemplo, dhcpmon.dll fornece netsh com o contexto e o conjunto de comandos necessários para configurar e gerenciar servidores DHCP.

O > posicionamento permite que você saiba em qual contexto ou subcontexto você está. Você pode obter uma lista de contextos netsh executando netsh ? ou netsh help pressionando Enter para qualquer um dos comandos disponíveis.

Veja um exemplo de saída:

The following commands are available:

Commands in this context:
..            - Goes up one context level.
?             - Displays a list of commands.
abort         - Discards changes made while in offline mode.
add           - Adds a configuration entry to a list of entries.
advfirewall   - Changes to the 'netsh advfirewall' context.
alias         - Adds an alias.
branchcache   - Changes to the 'netsh branchcache' context.
bridge        - Changes to the 'netsh bridge' context.
bye           - Exits the program.
commit        - Commits changes made while in offline mode.
delete        - Deletes a configuration entry from a list of entries.
dhcpclient    - Changes to the 'netsh dhcpclient' context.
dnsclient     - Changes to the 'netsh dnsclient' context.
dump          - Displays a configuration script.
exec          - Runs a script file.
exit          - Exits the program.
firewall      - Changes to the 'netsh firewall' context.
help          - Displays a list of commands.
http          - Changes to the 'netsh http' context.
interface     - Changes to the 'netsh interface' context.
ipsec         - Changes to the 'netsh ipsec' context.
ipsecdosprotection - Changes to the 'netsh ipsecdosprotection' context.
lan           - Changes to the 'netsh lan' context.
namespace     - Changes to the 'netsh namespace' context.
netio         - Changes to the 'netsh netio' context.
offline       - Sets the current mode to offline.
online        - Sets the current mode to online.
popd          - Pops a context from the stack.
pushd         - Pushes current context on stack.
quit          - Exits the program.
ras           - Changes to the 'netsh ras' context.
rpc           - Changes to the 'netsh rpc' context.
set           - Updates configuration settings.
show          - Displays information.
trace         - Changes to the 'netsh trace' context.
unalias       - Deletes an alias.
wfp           - Changes to the 'netsh wfp' context.
winhttp       - Changes to the 'netsh winhttp' context.
winsock       - Changes to the 'netsh winsock' context.

The following sub-contexts are available:
advfirewall branchcache bridge dhcpclient dnsclient firewall http interface ipsec lan mbn namespace netio nlm ras rpc trace wcn wfp winhttp winsock wlan

To view help for a command, type the command, followed by a space, and then type ?.

Subcontextos de comando

Os contextos também podem incluir comandos e contextos aninhados conhecidos como subcontextos. Por exemplo, o contexto da interface contém subcontextos, como ipv4 e ipv6, que permitem gerenciar configurações de interface de rede específicas. Por exemplo:

netsh> interface help

The following commands are available:

Commands in this context:
6to4           - Changes to the 'netsh interface 6to4' context.
?              - Displays a list of commands.
dump           - Displays a configuration script.
fl48           - Changes to the 'netsh interface fl48' context.
fl68           - Changes to the 'netsh interface fl68' context.
help           - Displays a list of commands.
httpstunnel    - Changes to the 'netsh interface httpstunnel' context.
ipv4           - Changes to the 'netsh interface ipv4' context.
ipv6           - Changes to the 'netsh interface ipv6' context.
isatap         - Changes to the 'netsh interface isatap' context.
portproxy      - Changes to the 'netsh interface portproxy' context.
set            - Sets configuration information.
show           - Displays information.
tcp            - Changes to the 'netsh interface tcp' context.
teredo         - Changes to the 'netsh interface teredo' context.
udp            - Changes to the 'netsh interface udp' context.

The following sub-contexts are available:
 6to4 fl48 fl68 httpstunnel ipv4 ipv6 isatap portproxy tcp teredo udp

To view help for a command, type the command, followed by a space, and then
 type ?.

Para executar tarefas em outro contexto sem alterar o contexto atual, digite o caminho de contexto do comando que você deseja usar no shell do netsh. Por exemplo, para adicionar um endereço IPv4 estático para "NetLAN1" e especificar a máscara de sub-rede e o gateway, digite:

netsh interface ipv4 set address "NetLAN1" static <IP_Address> <Subnet_Mask> <Gateway>

Legenda de formatação

Você pode usar a legenda de formatação a seguir para interpretar e usar a sintaxe de comando correta ao executar comandos interativamente, em um arquivo em lote ou em um script.

  • Texto em itálico são informações que você deve fornecer ao digitar o comando. Por exemplo, se um comando tiver um parâmetro denominado -UserName, você deverá digitar o nome de usuário real.
  • Texto em negrito são informações que você deve digitar exatamente como mostrado ao digitar o comando.
  • Texto seguido por reticências ... é um parâmetro que pode ser repetido várias vezes em uma linha de comando.
  • O texto que está entre colchetes [ ] é um item opcional.
  • O texto que está entre chaves { } com opções separadas por um pipe fornece um conjunto de opções das quais você deve selecionar apenas uma, como {enable|disable}.
  • O texto formatado com a fonte Courier é o código ou a saída do programa.

Valores de cadeia de caracteres para comandos netsh

Há comandos que contêm parâmetros para os quais um valor de cadeia de caracteres é necessário. No caso em que um valor de cadeia de caracteres contém espaços entre caracteres, é necessário colocar o valor da cadeia de caracteres entre aspas duplas.

Ao definir o parâmetro interface para redes IPv4 com um valor de cadeia de caracteres de Conexão de rede sem fio para DHCP, use aspas duplas ao redor do valor da cadeia de caracteres. Por exemplo:

netsh interface ipv4> set address name="Wireless Network Connection" dhcp

Como alternativa, para interfaces de rede, o número de índice pode ser usado no lugar do nome associado a ele. Por exemplo:

netsh interface ipv4> set address name=15 dhcp

Para localizar o nome ou índice das interfaces conectadas no subcontexto de interface, selecione o tipo de interface e digite show interfaces para exibir informações detalhadas. Por exemplo:

netsh interface> ipv4 show interfaces
netsh interface> ipv6 show interfaces

Se você não estiver no subcontexto de interface, poderá executar o comando completo para qualquer uma das interfaces. Por exemplo:

netsh interface ipv4 show interfaces
netsh interface ipv6 show interfaces

Usando netsh em arquivos em lotes

Um arquivo em lote é um arquivo de texto sem formatação que contém uma série de comandos a serem executados pelo CMD (Prompt de Comando do Windows). Os arquivos em lote têm uma .bat ou .cmd extensão. Eles são usados para automatizar tarefas repetitivas, gerenciar configurações do sistema e executar sequências de comandos sem intervenção do usuário. Os arquivos em lote são especialmente úteis para tarefas que envolvem várias instruções de linha de comando.

Um script em lote seria útil nestes cenários:

  • Configuração de rede em massa: se você precisar definir as configurações de rede para vários computadores, um arquivo em lote poderá simplificar o processo automatizando a configuração. As configurações em massa são úteis em ambientes empresariais ou para profissionais de TI que gerenciam vários computadores.

  • Reconfiguração de rede: os usuários que alternam entre diferentes ambientes de rede podem usar arquivos em lote para alterar rapidamente configurações como endereços IP e servidores DNS sem intervenção manual.

  • Configurações de backup e restauração: você pode criar um script em lote para fazer backup das configurações de rede antes de fazer alterações e outra para restaurá-las, se necessário.

Aqui está um exemplo de arquivo em lote. As linhas que começam com "rem" são comentários que permitem que os usuários saibam qual ação os comandos executam:

@echo off
echo Configuring network settings...

REM Set the IP address, subnet mask, and default gateway
netsh interface ip set address name="Ethernet" static 192.168.1.100 255.255.255.0 192.168.1.1

REM Set the DNS server address
netsh interface ip set dns name="Ethernet" static 8.8.8.8

REM Add a secondary DNS server
netsh interface ip add dns name="Ethernet" 8.8.4.4 index=2

REM Enable the firewall
netsh advfirewall set allprofiles state on

echo Network settings configured successfully.
pause

Aqui está uma breve explicação do que este script faz:

  • Ele define um endereço IP estático, uma máscara de sub-rede e um gateway padrão para o adaptador de rede chamado "Ethernet".
  • Configura o servidor DNS primário a ser usado.
  • Adiciona um servidor DNS secundário (fallback).
  • Habilita o Firewall do Windows com Segurança Avançada para todos os perfis.

Consulte também