Синтаксис, контексты и форматирование команд Netsh

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI, версии 21H2 и 20H2

С помощью этой статьи вы узнаете, как вводить контексты netsh и подконтексты, понимать синтаксис netsh и форматирование команд и выполнять команды netsh на локальных и удаленных компьютерах.

Netsh — это служебная программа на базе командной строки, которая позволяет показывать или изменять конфигурацию сети активного компьютера. Команды Netsh можно запускать, введя команды в оболочке netsh и используемые в пакетных файлах или скриптах. Удаленные компьютеры и локальный компьютер можно настроить с помощью команд Netsh.

Netsh также обеспечивает возможность написания сценариев, которые позволяют выполнять группы команд в режиме партии на определенном компьютере. С помощью Netsh вы можете сохранить сценарий настройки в текстовом файле для архивирования или упрощения конфигурации других компьютеров.

Синтаксис

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

Следующие параметры считаются необязательными.

Параметр Описание
-a Указывает, что вы вернелись в оболочку netsh после запуска AliasFile.
AliasFile Задает имя текстового файла, содержащего одну или несколько команд Netsh.
-c Указывает, что Netsh вводит заданный контекст Netsh.
Context Указывает контекст Netsh, который требуется ввести.
-r Указывает, что команда должна выполняться на удаленном компьютере. Служба удаленного реестра должна работать на удаленном компьютере. Если он не запущен, в Windows отображается сообщение об ошибке "Сетевой путь не найден".
RemoteComputer Указывает удаленный компьютер, который требуется настроить.
u Указывает, что вы хотите выполнить команду Netsh в учетной записи пользователя.
DomainName\ Указывает домен, в котором находится учетная запись пользователя. Значение по умолчанию — это локальный домен, если имя_домена\ не указано.
UserName Указывает имя учетной записи пользователя.
-p Указывает, что необходимо ввести пароль для учетной записи пользователя.
Password Указывает пароль для учетной записи пользователя, указанной с именем пользователя -uUserName.
Command Указывает команду Netsh, которую требуется выполнить.
f- Завершает работу в Netsh после выполнения скрипта, назначенного с помощью параметра ФайлСкрипта.
ScriptFile Указывает скрипт, который требуется выполнить.

Примечание.

Если вы указали -r другую команду, netsh выполняет команду на удаленном компьютере, а затем возвращается в командную строку. Если указать -r без еще одной команды, Netsh открывается в удаленном режиме. Процесс аналогичен использованию компьютера set в командной оболочке netsh. При использовании -r необходимо задать целевой компьютер только для текущего экземпляра netsh. После выхода и повторного ввода netsh целевой компьютер будет перенастроен в качестве локального компьютера. Команды netsh можно выполнять на удаленном компьютере, указывая имя компьютера, хранящееся в WINS, имя UNC, имя в Интернете, которое должно быть разрешено сервером DNS, или IP-адрес.

Выполнение команд Netsh

Чтобы выполнить команду netsh, необходимо запустить netsh из командной строки или PowerShell, введя netsh и нажав клавишу ВВОД. Затем можно перейти к контексту, содержащему необходимую команду. Доступные контексты зависят от установленных сетевых компонентов.

Например, если вы вводите dhcp в netsh shell и нажимаете клавишу ВВОД, netsh изменяет контекст DHCP-сервера. Если у вас нет установленной роли DHCP-сервера, появится следующее сообщение:

The following command was not found: dhcp.

Контексты Netsh

Netsh взаимодействует с другими компонентами операционной системы с помощью файлов библиотеки динамических ссылок (DLL).

Каждая вспомогательная библиотека DLL Netsh предоставляет широкий набор функций, называемых контекстом, который представляет собой группу команд для определенной серверной роли или возможности в сети. Эти контексты расширяют функциональные возможности Netsh, обеспечивая поддержку конфигурации и мониторинга для одной или нескольких служб, служебных программ или протоколов.

Например, Dhcpmon.dll предоставляет для Netsh контекст и набор команд для настройки DHCP-серверов и управления ими.

Список контекстов netsh можно получить, открыв командную строку или Windows PowerShell, а затем введите netsh /? или netsh help и нажмите клавишу ВВОД.

Ниже представлен пример таких выходных данных:

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 ?.

Подконтексты Netsh

Контексты Netsh могут содержать как команды, так и дополнительные контексты, называемые подконтекстами. Например, в контексте интерфейса можно изменить подконтексты IPv4 и IPv6.

Чтобы отобразить список команд и подконтекстов, которые можно использовать в контексте, в оболочке netsh введите подконтекстовое имя, а затем введите ? или справку. Например:

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 ?.

Чтобы выполнять задачи в другом контексте без изменения текущего контекста, введите путь контекста команды, которую вы хотите использовать в оболочке netsh. Например, чтобы добавить статический IPv4-адрес для NetLAN1 и указать маску подсети и шлюз, введите:

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

Условные обозначения форматирования

Вы можете использовать следующую легенду форматирования для интерпретации и использования правильного синтаксиса команды netsh при выполнении команды в оболочке netsh в пакетном файле или скрипте.

  • Курсивом — указывается информация, которую необходимо задать при вводе команды. Например, если у команды есть параметр с именем -UserName, необходимо ввести фактическое имя пользователя.
  • Полужирным текстом указывается информация, которую необходимо ввести точно так же, как показано при вводе команды.
  • Текст с многоточием (...) — это параметр, который может повторяться несколько раз в командной строке.
  • Текст, который находится между скобками [ ] является необязательным элементом.
  • Текст между фигурными скобками { } с вариантами, разделенными каналом, предоставляет набор вариантов, из которых необходимо выбрать только один, например {enable|disable}.
  • Шрифтом Courier указывается код или выходные данные программы.

Строковые значения для команд netsh

Существуют команды, содержащие параметры, для которых требуется строковое значение. В случае, если строковое значение содержит пробелы между символами, необходимо заключить строковое значение в двойные кавычки.

При настройке параметра интерфейса для сетей IPv4 со строковым значением беспроводной сети Подключение ion на DHCP используйте двойные кавычки вокруг строкового значения. Например:

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

Кроме того, для сетевых интерфейсов номер индекса можно использовать вместо имени, связанного с ним. Например:

netsh interface ipv4>set address name=15 dhcp

Чтобы найти имя или индекс подключенных интерфейсов, необходимо находиться в подконтексте интерфейса IPv4 или IPv6 и введите интерфейсы. Например:

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

См. также