Подключая ноутбук к разным сетям, иногда сталкиваешься с настройкой параметров сетевого адаптера под конкретную сеть, поскольку не все провайдеры и администраторы обеспечиваются настройку по DHCP.
Есть n-ное количество программ, например, NetSetMan, которые позволяют используя графический интерфейс выбирать профили настроек и применять их. Ошибки в таких программах при работе в Windows 7, а также другие причины заставляют отказаться от них в пользу командных файлов. Поэтому опишу несколько типовых командных файлов для смены настроек сетевого адаптера.
Внимание! Следует помнить, что действия по изменению параметров сетевого адаптера должны выполняться от имени пользователя с правами администратора.
Я слегка отформатировал вывод, чтобы проще воспринималось. Самое важное в данной команде это то, как называются наши сетевые адаптеры, параметры которых мы хотим изменить. В данном случае мы имеет два адаптера с именами "Беспроводное сетевое соединение" и "Подключение по локальной сети".
Из этого описания хорошо видно, как использовать данную команду. Замечу, что все параметры кроме name необязательны и их можно не указывать. В частности это полезно, если вы не хотите задавать шлюз или метрику.
Пример 1. Задать автоматическое получение IP-параметров по протоколу DHCP для адаптера "Подключение по локальной сети":
Пример 2. Задать статические IP-параметры для адаптера "Подключение по локальной сети" IP-адрес 213.108.211.11 с маской подсети 255.255.255.240 и шлюзом 213.108.211.10:
Пример 1. Задать автоматическое получение параметров DNS-сервера по протоколу DHCP для адаптера "Подключение по локальной сети":
Пример 2. Задать статические параметры DNS-сервера для адаптера "Подключение по локальной сети", где первый DNS-сервер имеет IP-адрес 213.108.208.2, а второй 213.108.209.2:
Пример 1. Применение сетевых настроек по протоколу DHCP:
Пример 2. Применение статических сетевых настроек:
Команда pause в конце скрипта не позволяет закрыться окну. Это важно, если Вы допустили ошибки при наборе команды. Когда команды написаны правильно команду "pause" можно удалить.
Внимание! В локализованных версиях Windows имена сетевых адаптеров написаны на русском языке. Символы кириллицы имеют различные кодовые страницы для Windows-приложений (обычно, графических) и приложений в командной строке. Поэтому важно сохранить файл с командами в кодировке CP866. (Стандартный блокнот не позволяет это сделать.)
Как вариант можно изменить названия сетевых адаптеров с использованием букв латинского алфавита, просто переименовав их:
Например, "wifi" или "cable". Тогда проблем с кодировками не будет.
Как было отмечено выше, командные файлы следует запускать под пользователем с правами администратора. Самый простой способ: нажать правой кнопкой на командном файле и выбрать "Запуск от имени администратора".
P.S. Можно также создать файлы для команды netsh с профилями, как описано тут. Но мне кажется это излишним.
Есть n-ное количество программ, например, NetSetMan, которые позволяют используя графический интерфейс выбирать профили настроек и применять их. Ошибки в таких программах при работе в Windows 7, а также другие причины заставляют отказаться от них в пользу командных файлов. Поэтому опишу несколько типовых командных файлов для смены настроек сетевого адаптера.
Внимание! Следует помнить, что действия по изменению параметров сетевого адаптера должны выполняться от имени пользователя с правами администратора.
Получить список всех сетевых адаптеров
Посмотреть список всех сетевых адаптеров, можно используя команду "netsh interface ip show config":C:\Windows\System32>netsh interface ip show config Настройка интерфейса "Беспроводное сетевое соединение" DHCP включен: Да IP-адрес 192.168.1.105 Префикс подсети: 192.168.1.0/24 (маска 255.255.255.0) Основной шлюз: 192.168.1.1 Метрика шлюза: 0 Метрика интерфейса: 25 DNS-серверы с настройкой через DHCP: 109.230.128.138 192.168.1.1 Зарегистрировать с суффиксом: Только основной WINS-серверы с настройкой через DHCP: Нет Настройка интерфейса "Подключение по локальной сети" DHCP включен: Да IP-адрес 192.168.1.101 Префикс подсети: 192.168.1.0/24 (маска 255.255.255.0) Основной шлюз: 192.168.1.1 Метрика шлюза: 0 Метрика интерфейса: 20 DNS-серверы с настройкой через DHCP: 109.230.128.138 192.168.1.1 Зарегистрировать с суффиксом: Только основной WINS-серверы с настройкой через DHCP: Нет
Я слегка отформатировал вывод, чтобы проще воспринималось. Самое важное в данной команде это то, как называются наши сетевые адаптеры, параметры которых мы хотим изменить. В данном случае мы имеет два адаптера с именами "Беспроводное сетевое соединение" и "Подключение по локальной сети".
Изменить настройки IP-адреса
Команда выглядит следующим образом:C:\Windows\system32>netsh interface ip set address help Использование: set address [name=]<строка> [[source=]dhcp|static] [[address=]<IPv4-адрес>[/<целое_число>] [[mask=]<IPv4-маска>] [[gateway=]<IPv4-адрес>|none [gwmetric=]<целое_число>] [[type=]unicast|anycast] [[subinterface=]<строка>] [[store=]active|persistent] Параметры: Тег Значение name - имя или индекс интерфейса. source - одно из следующих значений: dhcp: включение DHCP для настройки IP-адресов для указанного интерфейса. static: отключение использования DHCP для настройки IP-адресов для указанного интерфейса. Это значение указывается при настройке адреса или шлюза. address - добавляемый или изменяемый IPv4-адрес, за которым может следовать длина префикса подсети. mask - маска подсети IP для указанного IP-адреса. gateway - одно из следующих значений: <IPv4-адрес>: определенный шлюз по умолчанию для задаваемого статического IP-адреса. none: шлюзы по умолчанию не задаются. Этот параметр используется по умолчанию. gwmetric - метрика шлюза по умолчанию. Это поле следует задавать только тогда, когда указан шлюз. type - одно из следующих значений: unicast: адрес задается как адрес одноадресной рассылки. Этот параметр используется по умолчанию. anycast: адрес задается как адрес произвольной рассылки. subinterface - LUID подчиненного интерфейса, на котором существует шлюз по умолчанию. Этот параметр требуется только для интерфейсов с несколькими подчиненными интерфейсами. store - одно из следующих значений: active: параметр действует только до следующей загрузки. persistent: постоянный параметр. Этот параметр используется по умолчанию. Примечания: используется для включения или отключения DHCP для настройки IP-адресов. При этом также удаляются любые предыдущие статические IP-адреса и шлюзы по умолчанию или могут быть заданы новые статические IP-адреса и шлюзы по умолчанию. Примеры: set address name="Local Area Connection" source=dhcp set address "Local Area connection" static 10.0.0.9 255.0.0.0 10.0.0.1 1
Из этого описания хорошо видно, как использовать данную команду. Замечу, что все параметры кроме name необязательны и их можно не указывать. В частности это полезно, если вы не хотите задавать шлюз или метрику.
Пример 1. Задать автоматическое получение IP-параметров по протоколу DHCP для адаптера "Подключение по локальной сети":
netsh interface ip set address name="Подключение по локальной сети" source=dhcp или netsh interface ip set address "Подключение по локальной сети" dhcp
Пример 2. Задать статические IP-параметры для адаптера "Подключение по локальной сети" IP-адрес 213.108.211.11 с маской подсети 255.255.255.240 и шлюзом 213.108.211.10:
netsh interface ip set address name="Подключение по локальной сети" source=static address=213.108.211.11 mask=255.255.255.240 gateway=213.108.211.10 или netsh interface ip set address "Подключение по локальной сети" static 213.108.211.11 255.255.255.240 213.108.211.10
Изменить настройки DNS
Команда выглядит следующим образом:C:\Windows\system32>netsh interface ip set dnsservers help Применение: set dnsservers [name=]<строка> [source=]dhcp|static [[address=]<IP-адрес>|none] [[register=]none|primary|both] [[validate=]yes|no] Параметры Тег Значение name - Имя или индекс интерфейса. source - Одно из следующих значений: dhcp: назначает DHCP в качестве источника конфигурации DNS-серверов для определенного интерфейса. static: назначает в качестве источника конфигурации DNS-серверов локальную статическую конфигурацию. address - Одно из следующих значений: <IP-адрес>: IP-адрес DNS-сервера. none: очищает список DNS-серверов. register - Одно из следующих значений: none: отключает динамическую регистрацию DNS. primary: регистрация только с суффиксом основного DNS. both: регистрация как с суффиксом основного DNS, так и с суффиксом, определенным для подключения. validate - Указывает, выполняется ли проверка после настройки параметров DNS-сервера. Значение по умолчанию: yes. Примечания. Задает в конфигурации DNS-сервера режим DHCP или статический режим. Параметр addr будет доступен для конфигурации статического списка IP-адресов DNS-серверов для указанного интерфейса только при установке источником static. Если значение параметра Validate равно yes, то новый DNS-сервер проверяется. Примеры set dnsservers name="Local Area Connection" source=dhcp set dnsservers "Local Area Connection" static 10.0.0.1 primaryВ сети гуляет подавляющее большинство описаний, где вместо dnsservers указывается dns. Это устаревший параметр, который оставлен для совместимости.
Пример 1. Задать автоматическое получение параметров DNS-сервера по протоколу DHCP для адаптера "Подключение по локальной сети":
netsh interface ip set dnsserver name="Подключение по локальной сети" source=dhcp или netsh interface ip set dnsserver "Подключение по локальной сети" dhcp
Пример 2. Задать статические параметры DNS-сервера для адаптера "Подключение по локальной сети", где первый DNS-сервер имеет IP-адрес 213.108.208.2, а второй 213.108.209.2:
netsh interface ip set dnsservers "Подключение по локальной сети" static 213.108.208.2 netsh interface ip add dnsservers "Подключение по локальной сети" 213.108.209.2Обратите внимание, что команда set dnsservers сбрасывает список DNS-серверов для выбранного сетевого адаптера и устанавливает первый DNS-сервер в указанное значение. Последующие DNS-сервера добавляются через команду add вместо set.
Какие ещё параметры можно изменять
Смотрим на вывод командыC:\Windows\system32>netsh interface ip set help Применимы следующие команды: Команды в этом контексте: set address - Задает статический IP-адрес или основной шлюз для интерфейса. set compartment - Изменяет параметры конфигурации секции. set dnsservers - Установка режима DNS-сервера и адресов. set dynamicportrange - Изменяет диапазон портов, используемый для динамического назначения портов. set global - Изменяет общие параметры глобальной конфигурации. set interface - Изменяет параметры конфигурации интерфейса для IP. set neighbors - Задает адрес соседа. set route - Изменяет параметры маршрута. set subinterface - Изменяет параметры конфигурации субинтерфейса. set winsservers - Установка режима WINS-сервера и адресов.Поскольку большинство этих параметров (кроме IP-адреса и DNS-сервера) большинству смертных не потребуется, то и описывать я их не стану. Но Вы всегда сможете получить справку по нужным параметрам, используя за образец команды выше.
Командные файлы
Каждый раз вводить команды очень утомительно. Поэтому лучше создать файл с расширением "cmd" (или более устаревший вариант "bat"), где эти команды будут записаны.Пример 1. Применение сетевых настроек по протоколу DHCP:
netsh interface ip set address "Подключение по локальной сети" dhcp netsh interface ip set dnsserver "Подключение по локальной сети" dhcp pause
Пример 2. Применение статических сетевых настроек:
netsh interface ip set address "Подключение по локальной сети" static 213.108.213.117 255.255.255.240 213.108.213.113 netsh interface ip set dnsservers "Подключение по локальной сети" static 213.108.208.2 netsh interface ip add dnsservers "Подключение по локальной сети" 213.108.209.2 pause
Команда pause в конце скрипта не позволяет закрыться окну. Это важно, если Вы допустили ошибки при наборе команды. Когда команды написаны правильно команду "pause" можно удалить.
Внимание! В локализованных версиях Windows имена сетевых адаптеров написаны на русском языке. Символы кириллицы имеют различные кодовые страницы для Windows-приложений (обычно, графических) и приложений в командной строке. Поэтому важно сохранить файл с командами в кодировке CP866. (Стандартный блокнот не позволяет это сделать.)
Как вариант можно изменить названия сетевых адаптеров с использованием букв латинского алфавита, просто переименовав их:
Например, "wifi" или "cable". Тогда проблем с кодировками не будет.
Как было отмечено выше, командные файлы следует запускать под пользователем с правами администратора. Самый простой способ: нажать правой кнопкой на командном файле и выбрать "Запуск от имени администратора".
P.S. Можно также создать файлы для команды netsh с профилями, как описано тут. Но мне кажется это излишним.
Очень полезная инфа
ОтветитьУдалитьпомогла для написании программы по смену MAC'а - без ребута или ручного реконнекта адаптера.
Базара ноль, Братик, грамотно всё обосновал! Уважуха!
ОтветитьУдалитьСтатья классная, понравилась. Жаль с ДНС не получается, не удалось загрузить модуль peerdist.dll. Хотя он есть))) Парадокс.
ОтветитьУдалить