Синтаксис, контексты и форматирование команд Netsh
С помощью этой статьи вы узнаете, как вводить контексты 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 |
Указывает пароль для учетной записи пользователя, заданный с помощью -u ИмяПользователя. |
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 со строковым значением беспроводного сетевого подключения к 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