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

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

В этой статье описывается ввод контекстов и подконтекстов Netsh, синтаксис и форматирование команд Netsh, а также выполнение команд Netsh на локальных и удаленных компьютерах.

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

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

Контексты Netsh

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

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

Получение списка контекстов

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

Ниже приведен пример выходных данных для этих команд на компьютере под управлением Windows Server 2016 Datacenter.

PS C:\Windows\system32> netsh
netsh>/?

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 могут содержать как команды, так и дополнительные контексты, называемые подконтекстами. Например, в контексте маршрутизации можно перейти на подконтексты IP и IPv6.

Чтобы отобразить список команд и подконтекстов, которые можно использовать в контексте, в командной строке netsh введите имя контекста, а затем введите /? или Help. Например, чтобы отобразить список подконтекстов и команд, которые можно использовать в контексте маршрутизации, в командной строке Netsh (т. е. netsh ) введите одно из следующих действий:

routing /?

routing help

Для выполнения задач в другом контексте без перехода из текущего контекста введите путь контекста команды, которую необходимо использовать в командной строке Netsh. Например, чтобы добавить интерфейс с именем "Local Area Connection" ("Подключение по локальной сети") в контексте IGMP без предварительного перехода на этот контекст, введите в командной строке Netsh следующую команду:

routing ip igmp add interface "Local Area Connection" startupqueryinterval=21

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

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

The following command was not found: dhcp. (Следующая команда не найдена: dhcp.)

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

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

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

Выполнение команд Netsh в командной строке или Windows PowerShell

Чтобы запустить сетевую оболочку и ввести команду netsh в командной строке или в Windows PowerShell, можно использовать следующую команду:

netsh

Netsh — это служебная программа на базе командной строки, которая позволяет локально или удаленно просматривать или изменять конфигурацию сети активного компьютера. При использовании без параметров netsh открывает Netsh.exe командной строки (то есть netsh ).

Синтаксис

netsh[ -aалиасфиле] [- cконтекст ] [-rремотекомпутер] [ -u [ имя_домена \ ] имя_пользователя ] [ -pPassword | *] [{нетшкомманд-fScriptFile}]

Параметры

-a

Необязательный параметр. Указывает, что вы вернетесь в командную строку Netsh после выполнения ФайлаПсевдонима.

AliasFile

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

-c

Необязательный параметр. Указывает, что Netsh вводит заданный контекст Netsh.

Context

Необязательный параметр. Указывает контекст Netsh, который требуется ввести.

-r

Необязательный параметр. Указывает, что команда должна выполняться на удаленном компьютере.

Важно!

При удаленном использовании некоторых команд Netsh на другом компьютере с параметром netsh –r на удаленном компьютере должна быть запущена служба удаленного реестра. Если она не запущена, Windows выводит сообщение об ошибке Network Path Not Found (Сетевой путь не найден).

RemoteComputer

Необязательный параметр. Указывает удаленный компьютер, который требуется настроить.

-u

Необязательный параметр. Указывает, что вы хотите выполнить команду Netsh в учетной записи пользователя.

DomainName\\

Необязательный параметр. Указывает домен, в котором находится учетная запись пользователя. Значение по умолчанию — локальный домен, если имя_домена \ не задан.

UserName

Необязательный параметр. Указывает имя учетной записи пользователя.

-p

Необязательный параметр. Указывает, что необходимо ввести пароль для учетной записи пользователя.

Password

Необязательный параметр. Указывает пароль для учетной записи пользователя, указанной в параметре -uusername.

NetshCommand

Необязательный параметр. Указывает команду Netsh, которую требуется выполнить.

-f

Необязательный параметр. Завершает работу в Netsh после выполнения скрипта, назначенного с помощью параметра ФайлСкрипта.

ScriptFile

Необязательный параметр. Указывает скрипт, который требуется выполнить.

/?

Необязательный параметр. Показывает справку в командной строке Netsh.

Примечание

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

Ввод строковых значений параметров для команд Netsh

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

В случае когда строковое значение содержит пробелы между символами, например, если строковые значения состоят из нескольких слов, необходимо заключить строковое значение в кавычки. Например, для параметра с именем interface со строковым значением Wireless Network Connection (Беспроводное сетевое подключение) заключите строковое значение в кавычки:

interface="Wireless Network Connection"