Работа с сетью в командной строке Windows (CMD)
Большинство рассматриваемых сетевых утилит для полноценной работы требуют наличия административных привилегий. Для операционных систем семейства Windows 2000/XP достаточно того, чтобы пользователь работал под учетной записью члена группы администраторов. Интерпретатор командной строки cmd.exe можно запустить с использованием меню Пуск - Выполнить - cmd.exe. В среде операционных систем Widows Vista/Windows 7 интерпретатор cmd.exe должен быть запущен для выполнения с использованием пункта контекстного меню "Запустить от имени администратора". Командные файлы, в которых используются сетевые утилиты, также должны выполняться в контексте учетной записи с привилегиями администратора.
В списке представлены сетевые утилиты командной строки для получения информации о сетевых настройках, выполнения операций по конфигурированию и диагностике сети.
В описании команд используется
< текст > - текст в угловых скобках. Обязательный параметр
[ текст ] - текст в квадратных скобках. Необязательный параметр.
( текст ) - текст в круглых скобках. Необходимо выбрать один из параметров.
Вертикальная черта | - разделитель для взаимоисключающих параметров. Нужно выбрать один из них.
Многоточие ... - возможно повторение параметров.
Краткое описание и примеры использования сетевых утилит командной строки Windows:
ARP
IPCONFIG
GETMAC
NBTSTAT
NETSH
NETSTAT
NET
NSLOOKUP
PATHPING
PING
ROUTE
TELNET
TRACERT
Примеры практического использования.
Утилита ARP.EXE
Утилита командной строки ARP.EXE присутствует во всех версиях Windows и имеет один и тот же синтаксис.
Команда ARP позволяет просматривать и изменять записи в кэш ARP (Address Resolution Protocol - протокол разрешения адресов), который представляет собой таблицу соответствия IP-адресов аппаратным адресам сетевых устройств. Аппаратный адрес - это уникальный, присвоенный при изготовлении, 6-байтный адрес сетевого устройства, например сетевой карты. Этот адрес также часто называют MAC-адресом (Media Access Control - управление доступом к среде) или Ethernet-адресом. В сетях Ethernet передаваемые и принимаемые данные всегда содержат MAC-адрес источника (Source MAC) и MAC-адрес приемника (Destination MAC). Два старших бита MAC-адреса используются для идентификации типа адреса:
- первый бит - одиночный (0) или групповой (1) адрес.
- второй бит - признак универсального (0) или локально администрируемого (1) адреса.
Следующие 22 бита адреса содержат специальный код производителя MFG или OUI - универсальный код организации.
Другими словами, любое сетевое устройство имеет аппаратный адрес, состоящий из 2- х частей. Старшую часть MAC - адреса, централизованно выделяемую по лицензии каждому производителю сетевого оборудования. Например, 00:E0:4C - для сетевых устройств REALTEK SEMICONDUCTOR CORP. Крупным производителям сетевого оборудования обычно принадлежит несколько диапазонов OUI . И младшую часть MAC-адреса, которая формируется при производстве оборудования, и уникальна для каждого экземпляра устройства.
Отображение IP-адресов (формируемых программным путем), в аппаратные адреса, выполняется с помощью следующих действий:
- в сеть отправляется широковещательный запрос (ARP-request), принимаемый всеми сетевыми устройствами. Он содержит IP и Ethernet адреса отправителя, а также, целевой IP-адрес, для которого выполняется определение MAC-адреса.
- каждое устройство, принявшее запрос проверяет соответствие целевого IP-адреса, указанного в запросе, своему собственному IP-адресу. При совпадении, отправителю передается ARP-ответ (ARP-Reply), в котором содержатся IP и MAC адреса ответившего узла. Кадр с ARP-ответом содержит IP и MAC адреса как отправителя, так и получателя-составителя запроса.
- информация, полученная в ARP-ответе, заносится в ARP-кэш и может использоваться для обмена данными по IP-протоколу для данного узла. ARP-кэш представляет собой таблицу в оперативной памяти, каждая запись в которой содержит IP, MAC и возраст их разрешения. Возраст записи учитывается для того, чтобы обеспечить возможность повторного выполнения процедуры ARP при каком либо изменении соответствия адресов.
Синтаксис ARP.EXE:
arp[-a [InetAddr] [-NIfaceAddr]] [-g [InetAddr] [-NIfaceAddr]] [-dInetAddr [IfaceAddr]] [-sInetAddr EtherAddr [IfaceAddr]]
-a[ InetAddr] [ -NIfaceAddr] - ключ -a - отображает текущую таблицу ARP для всех интерфейсов. Для отображения записи конкретного IP-адреса используется ключ -a с параметром InetAdd , в качестве которого указывается IP-адрес. Если узел, отправляющий ARP-запрос имеет несколько сетевых интерфейсов, то для отображения таблицы ARP нужного интерфейса, можно использовать ключ -N с параметром IfaceAddr, в качестве которого используется IP-адрес интерфейса.
-g[ InetAddr] [ -NIfaceAddr] ключ -g идентичен ключу -a.
-d InetAddr[ IfaceAddr] - используется для удаления записей из ARP-кэш. Возможно удаление по выбранному IP или полная очистка ARP кэш. Для удаления всех записей, вместо адреса используется символ * Если имеется несколько сетевых интерфейсов, то очистку можно выполнить для одного из них, указав в поле IfaceAddr его IP .
-s InetAddr EtherAddr [ IfaceAddr] - используется для добавления статических записей в таблицу ARP. Статические записи хранятся в ARP-кэш постоянно. Обычно, добавление статических записей используется для сетевых устройств, не поддерживающих протокол ARP или не имеющих возможности ответить на ARP- запрос.
/? - получение справки по использованию arp.exe. Аналогично - запуск arp.exe без параметров.
Примеры использования ARP:
arp -a - отобразить все записи таблицы ARP.
arp -a 192.168.0.9 - отобразить запись, соответствующую IP-адресу 192.168.0.9
arp -a 192.168.1.158 -N 192.168.1.1 - отобразить таблицу ARP для адреса 192.168.1.158 на сетевом интерфейсе 192.168.1.1
arp -a -N 10.164.250.148 - отобразить все записи таблицы ARP на сетевом интерфейсе 10.164.250.148 .
arp -s 192.168.0.1 00-22-15-15-88-15 - добавить в таблицу ARP статическую запись, задающую соответствие IP - адреса 192.168.0.1 и MAC-адреса 00-22-15-15-88-15
arp -s 192.168.0.1 00-22-15-15-88-15 192.168.0.56 - то же самое, что и в предыдущем случае, но с указанием сетевого интерфейса, для которого выполняется добавление статической записи.
arp -d 192.168.1.1 192.168.1.56 удаление записи из таблицы ARP для IP-адреса 192.168.1.1 на сетевом интерфейсе 192.168.1.56
arp -d * - полная очистка таблицы ARP. Аналогично - arp -d без параметров. Если имеется несколько сетевых интерфейсов, то очистка может быть выполнена только для одного из них - arp -d * 192.168.0.56.
Некоторые замечания по практическому использованию команды ARP:
- разрешение адресов по протоколу ARP выполняется только при операциях передачи данных по протоколу IP .
- время жизни записей в таблице ARP ограничено, поэтому, перед просмотром ее содержимого для конкретного адреса нужно выполнить ping на этот адрес.
- если ответ на ping не приходит, а запись для данного IP-адреса присутствует в таблице ARP, то этот факт можно интерпретировать как блокировку ICMP-пакетов брандмауэром пингуемого узла.
- невозможность подключения к удаленному узлу по протоколам TCP или UDP при наличии записей в таблице ARP для целевого IP, может служить признаком отсутствия служб обрабатывающих входящие подключения, или их блокировки брандмауэром (закрытые порты).
- ARP протокол работает в пределах локального сегмента сети. Поэтому, если выполнить ping на внешний узел ( например ping yandex.ru ), то в таблице ARP будет присутствовать запись для IP - адреса маршрутизатора, через который выполняется отправка пакета во внешнюю сеть.
При использовании команды ARP для отображения таблицы, не помещающейся на экране, удобно пользоваться командой постраничного вывода more или перенаправлением стандартного вывода в файл:
arp -a | more
arp -a > C:\myarp.txt
Утилита IPCONFIG .
Утилита командной строки IPCONFIG присутствует во всех версиях Windows. Некоторые параметры командной строки не поддерживаются в версиях предшествующих Windows Vista/Windows 7
Команда IPCONFIG используется для отображения текущих настроек протокола TCP/IP и для обновления некоторых параметров, задаваемых при автоматическом конфигурировании сетевых интерфейсов при использовании протокола Dynamic Host Configuration Protocol (DHCP).
Синтаксис:
ipconfig [/allcompartments] [/all] [/renew[Adapter]] [/release[Adapter]] [/renew6[Adapter]] [/release6[Adapter]] [/flushdns] [/displaydns] [/registerdns] [/showclassidAdapter] [/setclassidAdapter [ClassID]]
Параметры:
/? - отобразить справку по использованию IPCONFIG
/all - отобразить полную конфигурацию настроек TCP/IP для всех сетевых адаптеров. Отображение выполняется как для физических интерфейсов, так и для логических, как например, dialup или VPN подключения.
/allcompartments - вывести полную информацию о конфигурации TCP/IP для всех секций. Применимо для Windows Vista/Windows 7 .
/displaydns - отобразить содержимое кэш службы DNS - клиент.
/flushdns - сбросить содержимое кэш службы DNS - клиент.
/registerdns - инициировать регистрацию записей ресурсов DNS для всех адаптеров данного компьютера. Этот параметр используется для изменения настроек DNS сетевых подключений без перезагрузки компьютера.
/release[Adapter] - используется для отмены автоматических настроек сетевого адаптера, полученных от сервера DHCP. Если имя адаптера не указано, то отмена настроек выполняется для всех адаптеров.
/release6[Adapter] - отмена автоматических настроек для протокола IPv6
/renew[Adapter] - обновить конфигурацию для сетевого адаптера настроенного на получение настроек от сервера DHCP. Если имя адаптера не указано, то обновление выполняется для всех адаптеров.
/renew6[Adapter] - как и в предыдущем случае, но для протокола IPv6
/showclassid Adapter и /setclassid Adapter[ ClassID] - эти параметры применимы для Windows Vista / Windows 7 и используются для просмотра или изменения идентификатора Class ID, если он получен от DHCP - сервера при конфигурировании сетевых настроек.
Изменение сетевых настроек с помощью команды IPCONFIG, в основном, применимо к тем сетевым адаптерам, которые настроены на автоматическое конфигурирование с использованием службы динамической настройки основных параметров на сетевом уровне DHCP (Dynamic Host Configuration Protocol) или службы автоматической настройки приватных IP - адресов APIPA (Automatic Private IP Addressing) .
Если в параметрах командной строки IPCONFIG используется имя адаптера, содержащее пробелы, то оно должно заключаться в двойные кавычки. Если имя содержит символы русского алфавита, то оно должно быть представлено в DOS-кодировке.
Для имен адаптеров применимо использование символа * в качестве шаблона:
* - любое имя
Локальн* - имя адаптера начинается с " Локальн "
* сети * - имя адаптера содержит строку " сети "
Примеры использования:
ipconfig - отобразить базовые сетевые настройки для всех сетевых адаптеров. BR>
ipconfig /all - отобразить все сетевые настройки для всех сетевых адаптеров.
ipconfig /renew "Подключение по локальной сети 2" - обновить сетевые настройки, полученные от DHCP - сервера только для адаптера с именем " Подключение по локальной сети 2"
ipconfig /dysplaydns - вывести на экран содержимое кэш службы разрешения имен DNS
ipconfig /showclassid "Подключение по локальной сети" - отобразить все допустимые для этого адаптера идентификаторы классов DHCP.
ipconfig /setclassid "Local Area Connection" TEST - установить для адаптера с именем "Local Area Connection" идентификатор класса DHCP "TEST". Если идентификатор класса DHCP не указан, то он будет удален.
Пример отображаемой конфигурации сетевого адаптера :
Ethernet adapter Подключение по локальной сети : - имя адаптера
DNS-суффикс подключения . . . . . : - DNS-суффикс из настроек сетевого подключения
Описание. . . . . . . . . . . . . : Realtek 8139d Adapter #2 - описание адаптера.
Физический адрес. . . . . . . . . : 00-14-02-7B-ED-67 - MAC- адрес данного адаптера.
DHCP включен. . . . . . . . . . . : Да - признак использования DHCP для конфигурирования сетевого адаптера
Автонастройка включена. . . . . . : Да - признак автоматической настройки параметров адаптера с использованием функции автоматического назначения адресов (APIPA) при отсутствии сервера DHCP. Режим определяется значением ключа реестра
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\GUID адаптера\IPAutoconfigurationEnabled
Значение 0 (тип DWORD) параметра IPAutoconfigurationEnabled отключает APIPA. Если значение этого параметра равно 1 , или параметр отсутствует в реестре, APIPA активируется.
Автонастройка IPv4-адреса . . . . : 169.254.254.18(Основной) - автоматически полученный локальный адрес, если используется APIPA
Локальный IPv6-адрес канала . . . : fe80::7c22:e7f8:3a71:8249%16(Основной) - локальный IPv6 адрес, если используется адресация IPv6
IPv4-адрес. . . . . . . . . . . . : 10.10.11.77(Основной) - используемый для данного адаптера IPv4 - адрес.
Маска подсети . . . . . . . . . . : 255.255.224.0 - маска подсети.
Аренда получена. . . . . . . . . . : 2 марта 2012 г. 22:44:48 - дата и время получения сетевой конфигурации от сервера DHCP
Срок аренды истекает. . . . . . . . . . : 3 марта 2012 г. 2:31:27 - срок истечения аренды сетевых настроек. Определяется сервером DHCP.
Основной шлюз. . . . . . . . . : 10.10.11.1 - IP - адрес маршрутизатора, используемого в качестве шлюза по умолчанию.
Код класса DHCPv4. . . . . . . . . . : TEST - код класса DHCP, если он существует.
DHCP-сервер. . . . . . . . . . . : 10.10.11.11 - - IP-адрес DHCP-сервера, от которого получена сетевая конфигурация.
Следующие 2 параметра (идентификатор участников DHCP - DUID и идентификатор арендованного адреса IAID) присутствуют при автоматическом конфигурировании настроек протокола IPv6 . В крупных сетях могут присутствовать несколько серверов DHCPv6. При автоматическом конфигурировании сетевого адаптера, все они получают от клиента специальный запрос DHCP REQUEST. Каждый из них проверяет, ему ли был направлен запрос. Сервер не приступает к обработке пакетов с DUID, отличающимся от его собственного. При совпадении DUID, сервер помечает адрес как присвоенный и возвращает ответ DHCP REPLY. На этом обработка запроса завершается.
IAID - это специальный идентификатор арендуемого IPv6-адреса длиной 4 байта. Клиенту выделяется адрес на время, определенное сервером (срок аренды). Когда предпочитаемый срок действия адреса заканчивается, клиент отправляет серверу пакет DHCP RENEW с запросом на продление этого срока. В сообщение включается идентификатор IAID, код которого также хранится в базе данных DHCP сервера. Если сервер готов продлить срок действия адреса, он отправляет ответ DHCP REPLY и клиент получает возможность использования арендованного адреса без повторного получения настроек.
IAID DHCPv6 . . . . . . . . . . . : 234890384 - идентификатор арендованного адреса IAID
DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-14-E2-78-C0-00-0C-1E-7C-29-E3 - идентификатор участников DHCP
DNS-серверы. . . . . . . . . . . : 94.25.128.74
94.25.208.74 - адреса DNS - серверов, используемых для разрешения имен в IP-адреса узлов.
NetBios через TCP/IP. . . . . . . . : Включен - режим использования NetBios через протокол TCP/IP.
Утилита GETMAC .
Утилита командной строки GETMAC присутствует в версиях Windows XP и старше. Используется для получения аппаратных адресов сетевых адаптеров (MAC-адресов) как на локальном, так и на удаленном компьютере.
Синтаксис:
GETMAC [/S <система> [/U <пользователь> [/P <пароль>]]] [/FO <формат>] [/NH] [/V]
Параметры:
/S <система> - имя или IP-адрес удаленного компьютера.
/U [<домен>\]<пользователь> Имя пользователя. Если не задано, то используется текущая учетная запись.
/P [<пароль>] - Пароль. Если задан параметр /U и не задан пароль, то он будет запрошен.
/FO <формат> - Формат, в котором следует отображать результаты запроса. Допустимые форматы: "TABLE" (таблица), "LIST" (список), "CSV" (разделяемые запятыми поля). Если параметр не задан, то используется вывод в виде таблицы (TABLE) .
/NH - Указывает, что строка заголовков столбцов не должна отображаться в результирующем файле. форматов TABLE и CSV.
/V - Отображение подробной информации. В отображаемой информации присутствует имя сетевого подключения и название сетевого адаптера.
/? - Вывод справки по использованию команды.
Примеры:
GETMAC /? - отобразить краткую справку об использовании GETMAC.
GETMAC /FO csv - выдать информации о MAC-адресах всех существующих на локальном компьютере сетевых адаптеров в формате CSV (полей с разделителями в виде запятой)
GETMAC /S COMPUTER /NH /V - получить MAC адреса сетевых адаптеров для удаленного компьютера COMPUTER, не отображать заголовки столбцов в таблице и использовать отображение подробной информации. Для подключения к удаленному компьютеру используется текущая учетная запись пользователя.
GETMAC /S 192.168.1.1 /NH /V - то же самое, но вместо имени компьютера задан его IP-адрес.
GETMAC /S COMPUTER /U user /P password - получить MAC - адрес адаптеров удаленного компьютера COMPUTER. Для подключения к нему используется имя пользователя "user" и пароль "password"
GETMAC /S COMPUTER /U mydomain\user - для подключения к удаленному компьютеру используется учетная запись пользователя "user" в домене "mydomain". Пароль пользователя вводится по запросу.
GETMAC /S COMPUTER /U mydomain\user /P password - то же самое, что и в предыдущем случае, но пароль задан в командной строке.
Пример выводимой информации по GETMAC без параметров:
Физический адрес Имя транспорта
=================== ==========================================================
00-00-DB-CE-97-9C \Device\Tcpip_{85E2B831-859B-45D4-9552-0E6DCFB57391}
00-2E-20-6B-0D-07 \Device\Tcpip_{158A50DF-F6F2-4909-8F15-DF94B51A81FF}
По имени транспорта можно найти в реестре записи, связанные с данным сетевым адаптером.
Утилита NBTSTAT .
Команда NBTSTAT позволяет получить статистику протокола NetBIOS over TCP/IP (NetBT), таблицу имен локальных и удаленных компьютеров и содержимое кэш NetBIOS имен. Применение NBTSTAT позволяет принудительно обновить кэш NetBIOS-имен компьютеров и имена, зарегистрированные с помощью серверов Windows Internet Name Service (WINS).
Синтаксис:
nbtstat[-aRemoteName] [-AIPAddress] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [Interval]
Параметры командной строки:
-a RemoteName - отображает таблицу имен удаленного компьютера. NetBIOS-имена соответствуют перечню NetBIOS-приложений, выполняющихся на удаленном компьютере.
-A IPAddress - то же самое, что и в предыдущем случае, но вместо имени удаленного компьютера используется его IP-адрес
. -c - отображает кэш имен NetBIOS и соответствующих им IP-адресов.
-n - отображает таблицу NetBIOS-имен на локальном компьютере. Состояние "Зарегистрирован" означает, что имя зарегистрировано с использованием широковещательного запроса или с помощью сервера WINS.
-r - отображает статистику разрешения NetBIOS-имен. На компьютерах под управлением Windows XP и старше, выдается раздельная статистика о разрешении имен с помощью широковещетельной рассылки и с помощью сервера имен WINS.
-R - очистка кэш NetBIOS-имен и загрузка данных из секции #PRE файла LMHOSTS.
-RR - очистка кэш NetBIOS - имен на локальном компьютере и их повторная регистрация с использованием сервера WINS.
-s - отображает статистику NetBIOS - сессий между клиентом и сервером и NetBIOS-имена удаленных узлов.
-S - отображает статистику сессий между клиентом и сервером и IP-адреса удаленных узлов.
Interval - интервал обновления отображаемых данных в секундах. Для прекращения автоматического обновления используется комбинация клавиш CTRL+C
/? - отобразить справку по использованию NBTSTAT.
Примеры использования: nbtstat -n - вывести список зарегистрированных NetBIOS-имен на локальном компьютере.
nbtstat -a SERVER - вывести список зарегистрированных NetBIOS-имен на компьютере SERVER.
nbtstat -A 192.168.1.1 - вывести список зарегистрированных NetBIOS-имен на удаленном компьютере с IP-адресом 192.168.1.1 .
nbtstat -RR - выполнить очистку и перерегистрацию NetBIOS-имен на локальном компьютере.
Утилита 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]
-a AliasFile - не завершать работу а перейти к приглашению ввода команд после выполнения AliasFile. AliasFile - имя текстового файла, в котором содержатся одна или несколько команд netsh .
-c Context - изменить контекст (уровень) команд netsh.
-r RemoteMachine - выполнять команды netsh на удаленном компьютере. В качестве RemoteMachine может использоваться имя или IP-адрес.
[-u DomainName\]UserName - имя пользователя для подключения к удаленному компьютеру. Если не задано, то используется текущее имя пользователя.
-p Password пароль для подключения к удаленному компьютеру.
Command - команда оболочки netsh , которую необходимо выполнить.
-f ScriptFile - аналогично ключу -a, но после выполнения команд файла сценария Scriptfile, работа netsh завершается.
Пример полученной справки об использовании по команде netsh ? или вводе знака вопроса на приглашение при запуске netsh без параметров в среде ОС Windows 7:
Применимы следующие команды:
Команды в этом контексте:
? - Отображение списка команд.
add - Добавление элемента конфигурации в список элементов.
advfirewall - Изменения в контексте 'netsh advfirewall'.
branchcache - Изменения в контексте 'netsh branchcache'.
bridge - Изменения в контексте 'netsh bridge'.
delete - Удаление элемента конфигурации из списка элементов.
dhcpclient - Изменения в контексте 'netsh dhcpclient'.
dnsclient - Изменения в контексте 'netsh dnsclient'.
dump - Отображение сценария конфигурации.
exec - Запуск файла сценария.
firewall - Изменения в контексте 'netsh firewall'.
help - Отображение списка команд.
http - Изменения в контексте 'netsh http'.
interface - Изменения в контексте 'netsh interface'.
ipsec - Изменения в контексте 'netsh ipsec'.
lan - Изменения в контексте 'netsh lan'.
mbn - Изменения в контексте 'netsh mbn'.
namespace - Изменения в контексте 'netsh namespace'.
nap - Изменения в контексте 'netsh nap'.
netio - Изменения в контексте 'netsh netio'.
p2p - Изменения в контексте 'netsh p2p'.
ras - Изменения в контексте 'netsh ras'.
rpc - Изменения в контексте 'netsh rpc'.
set - Обновление параметров конфигурации.
show - Отображение информации.
trace - Изменения в контексте 'netsh trace'.
wcn - Изменения в контексте 'netsh wcn'.
wfp - Изменения в контексте 'netsh wfp'.
winhttp - Изменения в контексте 'netsh winhttp'.
winsock - Изменения в контексте 'netsh winsock'.
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