Поделиться через


Сетевая оболочка (netsh)

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

Во многих сценариях команды netsh предлагают эквивалентную функциональность в модулях Майкрософт Менеджмент Консоль (MMC) для управления ролями и функциями сетевого сервера. Это позволяет администраторам выполнять задачи конфигурации и управления с помощью графического интерфейса MMC или с помощью автоматизации командной строки.

Например, можно настроить сервер политики сети (NPS), используя оснастку MMC NPS или команды netsh в контексте netsh nps . Кроме того, существуют команды netsh для сетевых технологий, таких как IPv6, сетевой мост и удалённый вызов процедур (RPC), которые недоступны в Windows Server как оснастка MMC.

Important

Рекомендуется использовать Windows PowerShell для управления сетевыми технологиями в Windows и Windows Server, а не netsh.

Пример синтаксиса

netsh [-a <Aliasfile>] [-c <Context>] [-r <RemoteMachine>] [-u <DomainName>\<Username>] [-p <Password> | *] [Command> | -f <ScriptFile>]

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

Parameter Description
-a Указывает, что вы хотите вернуться в оболочку netsh после запуска файла псевдонима. Псевдоним — это текстовый файл, содержащий одну или несколько команд netsh.
-c Вводит указанный контекст netsh. Контекст представляет определенный набор доступных команд, связанных с определенной функцией или функцией.
-r Указывает, что требуется, чтобы команда выполнялась на удаленном компьютере с использованием имени компьютера, полного доменного имени (FQDN) или IP-адреса. Служба удаленного реестра должна работать на удаленном компьютере. Если он не запущен, в Windows отображается сообщение об ошибке "Сетевой путь не найден".

Если вы указываете -r, а затем другую команду, netsh выполняет команду на удаленном компьютере, после чего возвращается в командную строку. Если вы указываете -r без другой команды, netsh открывается в удаленном режиме. Процесс аналогичен использованию set machine в командной оболочке netsh. При использовании -r вы задаёте целевой компьютер только для текущего экземпляра netsh.
-u Указывает, что вы хотите запустить команду netsh в определенной учетной записи пользователя с помощью DomainName\Username формата.
-p Указывает, что необходимо ввести пароль для учетной записи пользователя. Если * используется, это указывает, что вы хотите безопасно ввести пароль.
Command Это команда netsh, которую вы хотите запустить.
-f Указывает, что вы хотите выйти из netsh после выполнения команд из предоставленного файла скрипта.

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

Note

Чтобы использовать определенные команды netsh, такие как netsh firewall команды удаленно на другом компьютере с помощью параметра netsh –r , служба удаленного реестра должна работать на удаленном компьютере. Если эта служба не запущена, может появиться сообщение об ошибке сетевого взаимодействия.

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

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

Например, если вы ввели netsh, вы непосредственно перейдете в сетевую оболочку. Если вы введите dhcp и нажмите клавишу ВВОД, вы перейдете в контекстное меню для dhcpclient команд.

Контексты команд

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

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

Размещение > помогает вам узнать, в каком контексте или подконтексте вы находитесь. Список контекстов netsh можно получить, выполнив 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 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 ?.

Подконтексты команд

Контексты также могут включать как команды, так и вложенные контексты, известные как подконтексты. Например, контекст интерфейса содержит подконтексты, такие как ipv4 и ipv6, что позволяет управлять определенными параметрами сетевого интерфейса. Рассмотрим пример.

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

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

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

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

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

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

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

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

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

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

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

netsh interface ipv4> set address name=15 dhcp

Чтобы найти имя или индекс подключенных интерфейсов в подконтексте интерфейса, выберите тип интерфейса и тип show interfaces , чтобы просмотреть подробные сведения. Рассмотрим пример.

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

Если вы не используете подконтекст интерфейса, можно выполнить полную команду для любого интерфейса. Рассмотрим пример.

netsh interface ipv4 show interfaces
netsh interface ipv6 show interfaces

Использование netsh в пакетных файлах

Пакетный файл — это обычный текстовый файл, содержащий ряд команд, выполняемых командной строкой Windows (CMD). Пакетные файлы имеют расширение .bat или .cmd. Они используются для автоматизации повторяющихся задач, управления конфигурациями системы и выполнения последовательностей команд без вмешательства пользователя. Пакетные файлы особенно полезны для задач, включающих несколько инструкций командной строки.

Пакетный скрипт будет полезен в следующих сценариях:

  • Конфигурация массовой сети. Если необходимо настроить параметры сети для нескольких компьютеров, пакетный файл может упростить процесс, автоматив настройку. Массовые конфигурации полезны в корпоративных средах или для ИТ-специалистов, управляющих несколькими компьютерами.

  • Перенастройка сети. Пользователи, переключаясь между разными сетевыми средами, могут использовать пакетные файлы для быстрого изменения параметров, таких как IP-адреса и DNS-серверы без вмешательства вручную.

  • Параметры резервного копирования и восстановления: можно создать пакетный скрипт для резервного копирования параметров сети перед внесением изменений и другим, чтобы восстановить их при необходимости.

Ниже приведен пример пакетного файла. Строки, начинающиеся с "rem", — это комментарии, которые позволяют пользователям знать, какие действия выполняют команды:

@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

Ниже приведено краткое описание того, что делает этот скрипт:

  • Он задает статический IP-адрес, маску подсети и шлюз по умолчанию для сетевого интерфейса с именем Ethernet.
  • Настраивает основной DNS-сервер для использования.
  • Добавляет дополнительный (резервный) DNS-сервер.
  • Включает брандмауэр Windows с расширенной безопасностью для всех профилей.

См. также