Partilhar 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 visualizar e modificar configurações de rede, automatizar tarefas e solucionar problemas na rede local ou remotamente.

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

Por exemplo, você pode configurar o NPS (Servidor de Diretivas de Rede) usando o snap-in MMC do NPS ou os comandos netsh no netsh nps contexto. Além disso, há comandos netsh para tecnologias de rede, como 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 usar 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 Entra no contexto netsh especificado. O contexto representa um conjunto específico de comandos disponíveis relacionados a um determinado recurso ou função.
-r Especifica que você deseja que o comando seja executado em um computador remoto usando seu nome de computador, um nome de domínio totalmente qualificado (FQDN) ou 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, netsh executa o comando no computador remoto e, em seguida, retorna ao prompt de comando. Se você especificar -r sem outro comando, o netsh será aberto no modo remoto. O processo é semelhante ao uso set machine no shell de comando 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 de sair e entrar novamente netsh, o computador de destino é redefinido como o computador local. Você pode executar comandos netsh em um computador remoto especificando um nome de computador armazenado no WINS, um nome UNC, um nome da 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 este serviço não estiver em execução, poderá receber uma mensagem de erro de comunicação de rede.

Executando comandos netsh

A execução de netsh comandos pode ser executada usando um prompt de comando elevado ou uma janela do PowerShell. Você pode alterar para o contexto que contém o comando que você deseja usar, dependendo dos componentes de rede que estão 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

Netsh interage com outros componentes do sistema operacional usando arquivos de biblioteca de vínculo dinâmico (DLL). Cada DLL auxiliar netsh fornece um extenso conjunto de recursos chamado contexto, que é um grupo de comandos específicos para uma função ou recurso de servidor de rede. Esses contextos estendem 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 ao netsh 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.

Aqui está 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 específicas da interface de rede. 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 do contexto atual, digite o caminho de contexto do comando que você deseja usar no shell 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>

Formatação da legenda

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 lotes 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 chamado -UserName, você deverá digitar o nome de usuário real.
  • Texto em negrito são informações que você deve digitar exatamente como mostrado quando você digita o comando.
  • Texto seguido de reticências é um parâmetro que pode ser repetido várias vezes em uma linha de comando.
  • O texto entre parênteses [ ] é um item opcional.
  • O texto que está entre chaves { } com opções separadas por um tubo 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 interface parâmetro 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

Alternativamente, 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 encontrar o nome ou o índice das interfaces conectadas no subcontexto das interfaces, selecione o tipo de interface e escreva show interfaces para visualizar informações detalhadas. Por exemplo:

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

Se você não estiver no subcontexto da 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 lote

Um arquivo em lotes é um arquivo de texto simples que contém uma série de comandos a serem executados pelo Prompt de Comando do Windows (CMD). Os ficheiros em lote têm uma extensão .bat ou .cmd. Eles são usados para automatizar tarefas repetitivas, gerenciar configurações do sistema e executar sequências de comandos sem a 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 configurações de rede para vários computadores, um arquivo em lote pode simplificar o processo automatizando a configuração. As configurações em massa são úteis em ambientes corporativos ou para profissionais de TI que gerenciam várias máquinas.

  • 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 outro para restaurá-las, se necessário.

Aqui está um exemplo de arquivo em lotes. 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, máscara de sub-rede e gateway padrão para a interface de rede chamada "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.

Ver também