Sintaxis, contextos y formatos de comandos netsh

Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016; Azure Stack HCI, versiones 21H2 y 20H2

Puede usar este artículo para aprender cómo especificar contextos y subcontextos de netsh, comprender la sintaxis de netsh y el formato de los comandos, además de cómo ejecutar comandos netsh en equipos locales y remotos.

Netsh es una utilidad de scripting de línea de comandos que permite mostrar o modificar la configuración de red de un equipo actualmente en ejecución. Los comandos netsh se pueden ejecutar escribiendo comandos en el shell de netsh y se usan en archivos por lotes o scripts. Los equipos remotos y locales se pueden configurar mediante los comandos netsh.

Netsh también proporciona una característica de scripting que permite ejecutar un grupo de comandos en modo de lotes con un equipo especificado. Con netsh se puede guardar un script de configuración en un archivo de texto para archivarlo y así configurar otros equipos.

Sintaxis

netsh
netsh [-a AliasFile] [-c Context] [-r RemoteMachine] [-u [DomainName\]UserName] [-p Password | *] [Command | -f ScriptFile]

Los parámetros siguientes se consideran opcionales.

Parámetro Descripción
-a Especifica que se le devuelve al shell netsh después de ejecutar AliasFile.
AliasFile Especifica el nombre del archivo de texto que contiene uno o más comandos netsh.
-c Especifica que netsh entra en el contexto de netsh especificado.
Context Especifica el contexto de netsh que quieres especificar.
-r Especifica que quieres que el comando se ejecute en un equipo remoto. El servicio Registro remoto debe ejecutarse en el equipo remoto. Si no estuviera en ejecución, Windows mostrará un mensaje de error "No se encontró la ruta de red".
RemoteComputer Especifica el equipo remoto que quieres configurar.
-u Especifica que quieres ejecutar el comando netsh en una cuenta de usuario.
DomainName\ Especifica el dominio donde se encuentra la cuenta de usuario. El valor predeterminado es el dominio local, siempre que no se especifique DomainName\.
UserName Especifica el nombre de la cuenta de usuario.
-p Especifica que quieres proporcionar una contraseña para la cuenta de usuario.
Password Especifica la contraseña de la cuenta de usuario que especificó con -uNombreDeUsuario.
Command Especifica el comando netsh que quieres ejecutar.
-f Sale de netsh después de ejecutar el script que se designa con ArchivoDeScript.
ScriptFile Especifica el script que quieres ejecutar.

Nota:

Si especifica -r seguido de otro comando, netsh ejecutará el comando en el equipo remoto y, a continuación, volverá al símbolo del sistema. Si especificas -r sin otro comando, netsh se abre en modo remoto. El proceso es similar al uso de set machine en el shell de netsh. Cuando usas -r , estableces el equipo de destino para la instancia actual de netsh únicamente. Después de salir de netsh y volver a entrar, el equipo de destino se restablece como equipo local. Puedes ejecutar comandos netsh en un equipo remoto si especificas un nombre de equipo almacenado en WINS, un nombre de UNC, un nombre de Internet que deba resolver el servidor DNS, o una dirección IP.

Ejecución de comandos netsh

Para ejecutar un comando netsh, se debe iniciar netsh desde el símbolo del sistema o PowerShell. Para ello, escriba netsh y presione ENTRAR. Luego, puedes cambiar al contexto que contiene el comando que quieres usar. Los contextos que están disponibles dependen de los componentes de red que hayas instalado.

Por ejemplo, si escribe dhcp en el shell de netsh y presiona ENTRAR, netsh cambiará al contexto del servidor DHCP. Si no tuviera instalado el rol servidor DHCP, aparecerá el siguiente mensaje:

The following command was not found: dhcp.

Contextos de Netsh

Netsh interactúa con otros componentes del sistema operativo mediante archivos de la biblioteca de vínculos dinámicos (DLL).

Cada archivo DLL de la aplicación auxiliar netsh proporciona un amplio conjunto de características denominado contexto, que es un grupo de comandos específicos de un rol o característica del servidor de red. Estos contextos amplían la funcionalidad de netsh al proporcionar compatibilidad con la configuración y la supervisión de uno o varios servicios, utilidades o protocolos.

Por ejemplo, Dhcpmon.dll da a netsh el contexto y el conjunto de comandos necesarios para configurar y administrar los servidores DHCP.

Para obtener una lista de contextos netsh, abra el símbolo del sistema o Windows PowerShell, escriba netsh /? o netsh help y presione ENTRAR.

A continuación se muestra un resultado de ejemplo:

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 ipsecdosprotection lan namespace netio ras rpc trace wfp winhttp winsock

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

Subcontextos de Netsh

Los contextos netsh pueden contener comandos y contextos adicionales, denominados subcontextos. Por ejemplo, dentro del contexto de interfaz, podría cambiar a los subcontextos IPv4 e IPv6.

Para mostrar una lista de los comandos y subcontextos que se pueden usar en un contexto, en el shell de netsh, escriba el nombre del subcontexto y, luego, escriba ? o help. Por ejemplo:

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.
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 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 realizar tareas en otro contexto sin cambiar el contexto actual, escriba la ruta de acceso del contexto del comando que quiera usar en el shell de netsh. Por ejemplo, para agregar una dirección IPv4 estática para "NetLAN1" y especificar la máscara de subred y la puerta de enlace, escriba:

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

Leyenda de formato

Se puede usar la siguiente leyenda de formato para interpretar y usar la sintaxis de comandos netsh correcta al ejecutar el comando en el shell de netsh o en un archivo por lotes o script.

  • El texto en cursiva es información que debes proporcionar mientras escribes el comando. Por ejemplo, si un comando tiene un parámetro denominado -NombreDeUsuario, tienes que escribir el nombre de usuario real.
  • El texto en negrita es información que debes escribir tal cual se muestra mientras escribes el comando.
  • El texto seguido de tres puntos (...) es un parámetro que se puede repetir varias veces en una línea de comandos.
  • El texto entre corchetes [ ] es un elemento opcional.
  • El texto entre llaves { } con opciones separadas por una barra vertical proporciona un conjunto de opciones de las que debe seleccionar solo una, como {enable|disable}.
  • El texto con formato de fuente Courier es código o la salida del programa.

Valores de cadena para comandos netsh

Hay comandos que contienen parámetros para los que se requiere un valor de cadena. En el caso donde un valor de cadena contenga espacios entre caracteres, es necesario escribir el valor de cadena entre comillas dobles.

Al establecer el parámetro interfaz para redes IPv4 con un valor de cadena de conexión de red inalámbrica a DHCP, use comillas dobles alrededor del valor de cadena. Por ejemplo:

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

Como alternativa para las interfaces de red, se puede usar el número de índice en lugar del nombre que tenga asociado. Por ejemplo:

netsh interface ipv4>set address name=15 dhcp

Para buscar el nombre o índice de las interfaces conectadas, es necesario estar en el subcontexto de interfaz IPv4 o IPv6 y escribir mostrar interfaces. Por ejemplo:

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

Consulte también