
Каждый, кто работает с сетевыми конфигурациями Windows, рано или поздно сталкивается с Network Shell (Netsh). Этот термин обозначает интерфейс между пользователями и операционной системой, который позволяет администрировать и настраивать параметры локальной и удаленной сети.
Сфера применения включает в себя настройки брандмауэра Windows и управление LAN/WLAN, а также конфигурацию IP-адресов и серверов. Кроме того, сетевая инфраструктура может быть защищена от внешних атак. Используя инструмент командной строки, можно также диагностировать проблемы и проводить ремонтные работы в сети. Большим преимуществом Netsh является возможность быстрого и удобного выполнения задач администрирования, связанных с сетью, а также возможность автоматизации с помощью сценариев.
Команды Netsh: запуск командной строки
Для использования Netsh необходимо получить доступ к командной строке. В ней можно открыть меню «Выполнить» следующим образом:
- Нажмите комбинацию клавиш [Windows] + [R].
- Введите «cmd» в поле ввода (1)
- Нажмите кнопку «OK» (2)

После этого запустится командная строка. После ввода «netsh» и подтверждения нажатием [Enter] откроется служебная программа.

Если команды и скрипты Netsh не запускаются или планируется более фундаментальное вмешательство в конфигурацию сети, необходимо запустить Network Shell с правами администратора. Эти шаги необходимы в Windows 10:
- Щелкните правой кнопкой мыши на значке Windows в левой части панели задач или нажмите комбинацию клавиш [Windows] + [X].
- В появившемся контекстном меню выберите пункт «Командная строка (администратор)»:

Netsh включает в себя программный файл netsh.exe, расположенный в системной папке Windows (%windir%system32). Прямое открытие этого файла упрощает процедуру ввода команд Netsh. Вы можете ввести путь C:WindowsSystem32netsh.exe в адресную строку проводника Windows и нажать [Enter]. После этого вы можете сразу же вводить команды Netsh в появившемся окне ввода.
Запуск файла становится еще быстрее, если использовать ярлык. После создания ярлыка для запуска командной строки будет достаточно простого щелчка мыши:
- Щелкните правой кнопкой мыши на рабочем столе Windows. Нажмите на пункт меню «Создать» (1), а затем в следующем контекстном меню выберите пункт «Ярлык» (2):

- В помощнике создания ярлыка введите путь C:WindowsSystem32netsh.exe (1) и нажмите «Далее» (2):

- Вы должны дать ярлыку подходящее имя (1); ярлык будет помещен на рабочий стол после нажатия кнопки «Готово» (2):

Как работает Netsh
Сервисная программа Netsh предоставляет обширный синтаксис команд. Если вы хотите выполнить определенные задачи, вам потребуется ознакомиться с конкретной структурой Network Shell. Структура сервисной программы основана на контекстах, которые представляют различные уровни администрирования. Каждый контекст охватывает определенную сетевую функциональность (например, конфигурацию IP, локальной сети и брандмауэра). Программа использует файлы библиотеки динамических связей (DLL) для контекстно-связанного взаимодействия с другими компонентами Windows. Например, Netsh использует Dhcpmon.dll для изменения и управления настройками DHCP.
Чтобы использовать контекст, необходимо переключиться на него в командной строке Windows. Например, доступ к контексту «Администрирование локальной сети» осуществляется следующим образом:
- Открыв командную строку, введите «netsh» и подтвердите нажатием [Enter].
- Затем введите «lan» и подтвердите ввод нажатием [Enter].
- Теперь командная строка покажет изменение контекста: netsh lan>

После перехода в контекст «LAN» будет доступен ряд контекстно-специфических и межконтекстных команд. К контекстно-специфическим командам относится команда «set» (которая настраивает параметры интерфейсов). Примером общей и межконтекстной команды Netsh является команда справки «/?», в которой перечислены доступные подконтексты и команды в каждом разделе. Введя ее в разделе «LAN», вы получите следующий список контекстно-специфических и межконтекстных команд:

Например, если вы переключитесь на контекст брандмауэра, связанный с ним справочник команд будет выглядеть следующим образом:

Помимо контекстно-привязанной структуры, есть и другие особые моменты, которые необходимо учитывать при использовании программы. Netsh можно использовать в неинтерактивном или интерактивном режиме. В неинтерактивном режиме, например, важные сетевые настройки экспортируются в текстовый файл и повторно импортируются для последующего восстановления.
В интерактивном режиме можно инициировать прямые запросы. Если ввести команду «netsh interface ip show address», будет отображен текущий IP-адрес компьютера. Интерактивный режим может использоваться в режиме онлайн или офлайн. В онлайн-режиме операции выполняются напрямую, а в автономном режиме действия сохраняются и выполняются позже. Сохраненные действия активируются в нужное время с помощью команды Netsh «commit».
Команды Netsh и их контексты
Мы обобщили основные команды Netsh с кратким объяснением контекстов в таблице ниже. В случае общих, кросс-контекстных команд дополнительные пояснения не требуются (правая колонка). В зависимости от версии операционной системы и роли в сети (клиент или сервер), доступные команды могут отличаться в некоторых случаях. Запись команд на компьютере с центром обработки данных Windows Server 2016 выглядит следующим образом:
Команда | Реализация | Netsh context managed |
---|---|---|
.. | Переключение на уровень контекста выше | |
? | Отображает список команд | |
прервать | Удаляет изменения, сделанные в автономном режиме | |
add | Добавляет запись конфигурации в список | |
advfirewall | Переключает на контекст «netsh advfirewall». | Брандмауэр (политики и конфигурация) |
alias | Добавляет псевдоним | |
branchcache | Переход к контексту «netsh branchcache». | Настройки кэша филиалов |
bridge | Переход к контексту «netsh bridge». | Сетевой мост |
пока | Завершает работу программы | |
commit | Применяет изменения, сделанные в автономном режиме | |
удалить | Удаляет запись конфигурации из списка записей | |
dhcpclient | Переключается на контекст «netsh dhcpclient». | клиент DHCP |
dnsclient | Переход к контексту «netsh dnsclient». | Настройки DNS клиента |
дамп | Отображает сценарий конфигурации | |
exec | Запускает файл сценария | |
exit | Завершает работу программы | |
firewall | Переключает на контекст «netsh firewall». | Брандмауэр (политики и конфигурация) |
help | Отображает список команд | |
http | Переключение на контекст «netsh http» | Драйвер сервера HTTP (http.sys) |
интерфейс | Переключает на контекст «netsh interface». | Конфигурация IP (v4, v6) |
ipsec | Переход к контексту «netsh ipsec». | Политики IPSEC |
ipsecdosprotection | Переход к контексту «netsh ipsecdosprotection». | Защита от атак типа «отказ в обслуживании» IPSEC |
lan | Переключение на контекст «netsh lan». | Проводные сетевые интерфейсы |
пространство имен | Переключение на контекст «netsh namespace». | Клиентские политики DNS |
netio | Переключение на контекст «netsh netio». | Фильтры обязательств |
автономный | Устанавливает текущий режим на автономный | |
онлайн | Устанавливает текущий режим в онлайн | |
popd | Переключается на контекст, сохраненный через pushd в стеке | |
pushd | Применяет текущий контекст к стеку | |
quit | Завершает работу программы | |
ras | Переключается на контекст «netsh ras». | Сервер удаленного доступа |
rpc | Переключение на контекст «netsh rpc» | Конфигурация службы RPC |
set | Обновление настроек конфигурации | |
show | Отображает информацию | |
trace | Переключает на контекст «netsh trace». | |
unalias | Удаляет имя псевдонима | |
wfp | Переключение на контекст «netsh wfp». | Платформа фильтрации Windows |
winhttp | Переключение на контекст «netsh winhttp». | Настройки прокси и трассировки HTTP-клиента Windows |
winsock | Переход к контексту «netsh winsock». | Конфигурация Winsock |
wlan | Переход к контексту «netsh wlan». | Беспроводные сетевые интерфейсы |
Параметры синтаксиса для Netsh — что они означают?
Для реализации конкретных действий и задач командам Netsh могут быть приданы необязательные параметры. Синтаксическая схема сочетания команд Netsh и параметров выглядит следующим образом:
netsh [-a AliasFile] [-c Context] [-r RemoteComputer] [-u [DomainName]UserName] [-p Password | *] [command | -f ScriptFile]
Все следующие параметры являются необязательными, поэтому их можно добавлять и использовать там, где это необходимо.
-a | Возврат к командной строке Netsh после выполнения файла псевдонима |
---|---|
AliasFile | Указывает имя текстового файла, содержащего хотя бы одну команду Netsh |
-c | Переключение на указанный контекст Netsh |
Контекст | Задание контекста, который необходимо ввести (например, WLAN). |
-r | Приводит к запуску команды на удаленном компьютере; на нем должна быть выполнена служба удаленной регистрации. |
RemoteComputer | Имя удаленного компьютера, который настраивается. |
-u | Указывает, что команда Netsh выполняется под учетной записью пользователя. |
DomainName | Указывает домен учетной записи пользователя (стандартным значением является локальный домен, если не указан специальный домен) |
UserName | Имя учетной записи пользователя |
-p | Для учетной записи пользователя может быть введен пароль |
Пароль | Задает пароль для учетной записи пользователя, указанной с помощью команды -u UserName |
NetshCommand | Команда Netsh, которую необходимо выполнить |
-f | Завершает работу Netsh после выполнения файла сценария |
ScriptFile | Сценарий, который будет запущен |
Сброс стека TCP/IP с помощью Netsh
Часто команды Netsh используются для сброса стека TCP/IP, который обеспечивает обмен пакетами данных в сетях. В случае проблем с сетью и интернетом эта мера может помочь, например, устранить неисправные или неправильно настроенные протоколы TCP/IP. Следующая команда repair выполняет сброс и заново устанавливает TCP/IPv4:
netsh int ip reset
Также может быть создан файл протокола, в котором регистрируются внесенные изменения:
netsh int ip reset c:tcpipreset.txt
После выполнения сброса потребуется перезагрузить компьютер.
Команды Netsh также можно использовать в пакетных файлах (*.bat) для автоматизации рутинных задач. Узнайте больше в нашем руководстве «Удаление пакетных файлов».
Импорт и экспорт сетевых настроек
Netsh позволяет экспортировать текущие сетевые настройки в обычный текстовый файл. В случае проблем с сетью можно быстро восстановить работоспособную и безошибочную конфигурацию.
На первом этапе (экспорт) сетевая конфигурация считывается, записывается в текстовый файл (netcnfig.txt) и сохраняется в каталоге примеров «Network Configuration» на диске C:. Перед первым экспортом необходимо вручную создать папку «Network Configuration» на целевом диске (Netsh не выполняет этот шаг автоматически). Затем переключитесь в командную строку и введите приведенный ниже код:
netsh -c interface dump>c:Network Configurationnetcnfig.txt
Следующий ввод команды необходим для последующего импорта настроек:
netsh -f c:Network Configurationnetcnfig.txt
Windows 10 также поддерживает копирование и вставку в командной строке. Вы можете просто скопировать синтаксис команды из этой статьи и вставить его в окно ввода.
Настройка IP-адресов с помощью Netsh
Распространенным случаем использования Netsh является изменение настроек IP. Если компьютер в сети имеет не статический IP-адрес, а автоматически назначенный, используется протокол динамической конфигурации хоста (DHCP). Этот протокол связи автоматически назначает IP-адреса клиентам в сети, а также другие необходимые конфигурационные данные. Этот процесс состоит из нескольких шагов:
На первом этапе запрашиваются текущие настройки и имена доступных сетевых адаптеров:
netsh interface ipv4 show interface

Теперь определенный сетевой адаптер (в данном случае: Ethernet) определяется как адресат для назначения IP-адреса через DHCP.
netsh interface ipv4 set address name="Ethernet" source=dhcp
Далее DHCP применяет динамическое администрирование для сетевых настроек, относящихся к адаптеру Ethernet.
Активация и деактивация брандмауэра Windows
Если вы хотите активировать или деактивировать брандмауэр Windows, все, что вам нужно, это простой синтаксис команды Netsh. Брандмауэр активируется следующим образом:
netsh firewall set opmode enable
Для деактивации брандмауэра требуется следующая команда:
netsh firewall set opmode disable
В некоторых ситуациях Windows рекомендует альтернативы сетевому администрированию с помощью Netsh. Здесь часто предлагается Windows PowerShell, введение в которую можно найти в нашем цифровом руководстве.