Не отступай и не сдавайся !!!

+7(495)233-9079
arduino4home@gmail.com

 

Сетевая утилита NETSH.EXE

Утилита сетевой оболочки NETSH (NETwork SHell) - наиболее полное и функциональное стандартное средство управления сетью с использованием командной строки в среде Windows XP и старше. Набор внутренних команд сетевой оболочки пополняется с появлением новых версий операционной системы, что необходимо учитывать при работе в локальной сети с различными ОС. Так, например, команда уровня wlan ( netsh wlan - управление беспроводной сетью) может использоваться на компьютерах под управлением Windows Vista и старше и отсутствует в Widows XP. Синтаксис используемых команд и параметров также может различаться в разных операционных системах семейства Windows..

При запуске NETSH.EXE без параметров на экран выводится приглашение к вводу внутренних команд оболочки. Набор команд представляет собой многоуровневую структуру, позволяющую выполнять необходимые действия в выбранном контексте. При вводе знака вопроса ? можно получить краткую справку по доступному перечню команд на данном уровне. Ввод команды данного уровня со знаком вопроса вызовет отображение справки по ее использованию. Аналогичную справку можно получить, введя определенную команду и, после перехода на уровень ее выполнения, ввести знак вопроса. При необходимости, можно выполнить нужное действие без использования интерактивного режима, указав в качестве параметров командной строки последовательный набор внутренних команд NETSH и необходимых параметров.

Например:

netsh advfirewall show global последовательно выполняется команда первого уровня advfirewall, в ее контексте, команда следующего уровня show с параметром global

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

Синтаксис:

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

  1. -a AliasFile - не завершать работу а перейти к приглашению ввода команд после выполнения AliasFile. AliasFile - имя текстового файла, в котором содержатся одна или несколько команд netsh.
  2. -c Context - изменить контекст (уровень) команд netsh.
  3. -r RemoteMachine - выполнять команды netsh на удаленном компьютере. В качестве RemoteMachine может использоваться имя или IP-адрес.
  4. [-u DomainName\]UserName - имя пользователя для подключения к удаленному компьютеру. Если не задано, то используется текущее имя пользователя.
  5. -p Password пароль для подключения к удаленному компьютеру.
  6. Command - команда оболочки netsh , которую необходимо выполнить.
  7. -f ScriptFile - аналогично ключу -a, но после выполнения команд файла сценария Scriptfile, работа netsh завершается.

Пример полученной справки об использовании по команде netsh ? или вводе знака вопроса на приглашение при запуске netsh без параметров в среде ОС Windows 7:

Применимы следующие команды:

Команды в этом контексте:

    1. ? - Отображение списка команд.
    2. add - Добавление элемента конфигурации в список элементов.
    3. advfirewall - Изменения в контексте 'netsh advfirewall'.
    4. branchcache - Изменения в контексте 'netsh branchcache'.
    5. bridge - Изменения в контексте 'netsh bridge'.
    6. delete - Удаление элемента конфигурации из списка элементов.
    7. dhcpclient - Изменения в контексте 'netsh dhcpclient'.
    8. dnsclient - Изменения в контексте 'netsh dnsclient'.
    9. dump - Отображение сценария конфигурации.
    10. exec - Запуск файла сценария.
    11. firewall - Изменения в контексте 'netsh firewall'.
    12. help - Отображение списка команд.
    13. http - Изменения в контексте 'netsh http'.
    14. interface - Изменения в контексте 'netsh interface'.
    15. ipsec - Изменения в контексте 'netsh ipsec'.
    16. lan - Изменения в контексте 'netsh lan'.
    17. mbn - Изменения в контексте 'netsh mbn'.
    18. namespace - Изменения в контексте 'netsh namespace'.
    19. nap - Изменения в контексте 'netsh nap'.
    20. netio - Изменения в контексте 'netsh netio'.
    21. p2p - Изменения в контексте 'netsh p2p'.
    22. ras - Изменения в контексте 'netsh ras'.
    23. rpc - Изменения в контексте 'netsh rpc'.
    24. set - Обновление параметров конфигурации.
    25. show - Отображение информации.
    26. trace - Изменения в контексте 'netsh trace'.
    27. wcn - Изменения в контексте 'netsh wcn'.
    28. wfp - Изменения в контексте 'netsh wfp'.
    29. winhttp - Изменения в контексте 'netsh winhttp'.
    30. winsock - Изменения в контексте 'netsh winsock'.
    31. wlan - Изменения в контексте 'netsh wlan'.

Доступны следующие дочерние контексты:

advfirewall branchcache bridge dhcpclient dnsclient firewall http interface ipsec lan mbn namespace nap netio p2p ras rpc trace wcn wfp winhttp winsock wlan

Чтобы получить справку по команде, введите эту команду, затем пробел и "?"

Примеры практического использования NETSH.

Как получить справку в виде текстового файла для выбранного контекста NETSH?

Для примера, нужно получить справку в контексте работы с конфигурацией беспроводной сети wlan . Последовательно выполняем команды

  • netsh
  • wlan
  • set file open C:\wlanhelp.txt
  • ?
  • set file close

В данном примере, команда set file open C:\wlanhelp.txt устанавливает режим вывода консольных сообщений в файл с именем C:\wlanhelp.txt. После установки данного режима, все, что вводится с клавиатуры и отображается на экране, будет записано в указанный текстовый файл. Таким образом, можно создавать файлы журналов отдельных сессий использования netsh . Вместо параметра open можно использовать append и имя уже существующего файла журнала. В таком режиме данные будут записываться в конец существующего текстового файла.

Как сохранить и восстановить сетевую конфигурацию?

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

Для сохранения используется команда: dump Имя файла сценария.

Для восстановления настроек из файла сценария используется команда: exec Имя файла сценария.

В некоторых версиях netsh команда dump с указанием имени файла почему-то не работает. Однако, для сохранения конфигурации можно воспользоваться способом, описанным выше - использовать запись в файл командой set file open C:\mynet.sav .

  • netsh
  • set file open C:\mynet.sav
  • dump
  • quit

Остается только слегка исправить полученный файл сценария C:\mynet.sav - удалить 1-ю строчку с командой dump и последние - с приглашением netsh и (или) командой quit.

Второй способ - использовать netsh с перенаправлением вывода команды dump в файл:

netsh dump > C:\mynet.sav

Для сохранения отдельного контекста конфигурации можно воспользоваться командой dump на соответствующем уровне:

netsh interface dump > C:\myinterf.cnf - сохранить настройки сетевых интерфейсов в виде сценария netsh в файле C:\myinterf.cnf

Для восстановления сетевой конфигурации можно воспользоваться

netsh exec C:\mynet.sav

Обычно, после восстановления сетевых настроек из файла сценария , требуется перезапуск некоторых сетевых служб, а желательнее - выполнить перезагрузку Windows.

Как выполнить переключение между контекстами netsh?

Иногда требуется выполнить некоторые команды на одном уровне, перейти на другой, и снова вернуться на предыдущий. Для выполнения таких переходов используются команды pushd и popd .

Принцип переключения между контекстами основан на обработке очереди в соответствии с правилом "первым вошел - последним вышел" или first-in-last-out (FILO) stack.

Команда pushd запоминает текущий уровень (контекст) в стеке, а команда popd извлекает его из стека.

Например:

  • netsh> - приглашение первого уровня команды nesh
  • pushd - введена команда запоминания контекста в стек
  • netsh> - приглашении netsh не меняется, контекст прежний.
  • interface ipv4 - переход на уровень interface и уровень ipv4
  • netsh interface ipv4> - соответственно, изменилась строка приглашения, отображая текущий контекст выполнения команды netsh
  • set address local static 192.168.1.9 255.255.255.0 192.168.1.1 1 - команда, меняющая настройки IP протокола.
  • netsh interface ip> - контекст выполнения команды, отображаемый в приглашении не изменяется.
    popd - команда извлечения из стека запомненного контекста.
  • netsh > - строка приглашения изменилась, отображая текущий контекст выполнения команды netsh .

Без использования команд pushd и popd практически невозможно полноценное использование сценариев netsh.

Как найти примеры выполнения сетевых настроек с помощью netsh?

Кроме сохранения и восстановления настроек использование команды dump позволяет получить примеры в виде сценария, соответствующего текущей конфигурации. Например, дамп секции interface дает пример выполнения команд netsh в контексте настроек сетевых интерфейсов. Пример сценария :

#========================
# Конфигурация интерфейса
#========================
pushd interface
reset all
popd
# Конец конфигурации интерфейса
. . .

# -----------------------------------------
# Настройка IP-интерфейсов
# -----------------------------------------
pushd interface ip
# Интерфейс настройки IP для "Подключение по локальной сети"

set address name=" Подключение по локальной сети " source=static addr=192.168.0.1 mask=255.255.255.0
set dns name="Подключение по локальной сети" source=static addr=192.168.0.2 mask=255.255.255.0
set wins name=" Подключение по локальной сети " source=static addr=192.168.0.9

Строки сценария, начинающиеся с символа #, являются комментариями. Команды pushd и popd позволяют определить контекст исполнения других команд netsh. Команды настроек конфигурации плюс справочная информация самой netsh позволяют довольно легко получить командную строку для выполнения отдельных сетевых настроек:

- Сменить IP-адрес в командной строке:

netsh interface ip set address name="Подключение по локальной сети" source=static addr=192.168.0.58 mask=255.255.255.0

name - имя сетевого подключения
source - static - статический IP-адрес. Возможно значение DHCP, если адрес назначается автоматически сервером DHCP.
addr - значение IP-адреса
mask - значение маски сети.

Для получения сведений о дополнительных возможностях конфигурирования сетевых интерфейсов можно перейти на соответствующий контекст выполнения netsh, и выполнить интересующую команду с параметром ? . Например:

netch - старт NETSH
interface - перейти в контекст настройки сетевых интерфейсов interface
ip - перейти в контекст настройки протокола IP
set file open C:\setaddr.txt - записывать сессию в файл. Эта команда используется, если нужна справочная информация в виде текстового файла .
set address ? выдать справку по использованию set address
set file close - закрыть файл справки.
quit - завершить работу с netsh

Для Windows Vista / Windows 7 синтаксис будет немного отличаться, уровню ip будет соответствовать уровень ipv4 :

netch - старт NETSH
interface - перейти в контекст настройки сетевых интерфейсов interface
ipv4 - перейти в контекст настройки протокола IP
set file open C:\setaddr.txt - записывать сессию в файл. Эта команда используется, если нужна справочная информация в виде текстового файла .
set address ? выдать справку по использованию set address
set file close
quit - завершить работу с netsh

Пример синтаксиса для смены адреса DNS-сервера в настройках сетевого подключения "Подключение по локальной сети 2" на адрес публичного DNS-сервера Googl в среде Windows 7:

netsh interface ipv4 set dnsservers name="Подключение по локальной сети 2" static 8.8.8.8 primary

Из информации файла справки следует, что возможно использование параметров командной строки netsh без указания ключевых слов:

netsh interface ip set address name="Подключение по локальной сети" source=static addr=192.168.0.58 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1



Аналогично, без указания ключевых слов:

netsh interface ip set address name="Подключение по локальной сети" static 192.168.0.58 255.255.255.0 192.168.0.1 1



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

netsh interface ip set address name="Подключение по локальной сети" gateway=192.168.0.1 gwmetric=1

При ее выполнении отсутствующие параметры (IP-адрес и маска) будут сброшены. Для правильной смены шлюза по умолчанию команда должна быть следующей:

netsh interface ip set address name="Подключение по локальной сети" source=static addr=192.168.0.58 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1

Оказываем услуги по организации эффективного Комбинированного Документооборота малым и средним предприятиям. Позволяем свести к минимуму потери от недостатков Бумажного Документооборота. Работаем на Вашей информационной инфраструктуре. Подробнее >>>

Планируете создать бизнес? Ваш бизнес болен или планируете его расширение? Нужна помощь? Обращайтесь !!! Гарантия конфиденциальности!!!
==> Прайс-лист. ==> Подробнее.
Выражаем искреннюю благодарность авторам материалов, размещённых на сайте.
1C 1С Бит (бухучёт и торговля) FreeBSD Linux VMWare
Veeam HP Oracle VirtualBox IBM
Полезные ссылки

АРХИВ САЙТА
Исключительно информационная поддержка!!! И ничего более!!!

Хостинг нашего сайта осуществляется узлом www.cherepovets-city.ru
© 2000-2018 - 14/7/18 20:47