|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Автоматизация изменения сетевых настроек |
|
CMD/BAT - [решено] Автоматизация изменения сетевых настроек
|
Старожил Сообщения: 303 |
Доброго дня.
Коллеги окажите помощь в такой для меня не понятной ситуации. 1: пробую написать скрипт для изменения сетевых настроек, но столкнулся вот с такой не задачей Когда подключение называется кириллицей то постоянно идет синтетическая ошибка, если же назову латинскими буквами netsh interface ipv4 show ipaddresses "LAN" normal все работает нормально. 2. Так же не пойму возможно ли первоначально определять имя интерфейса и уже потом использовать его в скрипте. а то может называться "Подключение по локально сети", а может "Подключение по локальной сети Х" Скрипт использовался за основания найденный в инете @ECHO off cls :start netsh interface ipv4 show ipaddresses "LAN" normal rem просмотр текущей конфигурации сетевой карты "LAN" netsh interface ipv4 show dnsservers "LAN" rem просмотр dns-серверов "LAN" rem netsh interface ipv4 show addresses ECHO. ECHO 1 LAN DHCP ECHO 2 LAN 192.168.1.XXX (gw=YYY) ECHO 3 LAN DNS rem ECHO 4 WLAN DHCP rem ECHO 5 WLAN Home rem ECHO 6 WLAN Work ECHO 9 ping www.google.com -t ECHO 0 Exit rem вывод меню для пользователя set choice= rem обнуление переменной choice set /p choice=Enter the number of your choice: rem ввод пользователем значения переменной choice if '%choice%'=='1' goto one rem если значение choice равно единице, то перейти к метке one if '%choice%'=='2' goto two if '%choice%'=='3' goto three if '%choice%'=='4' goto four if '%choice%'=='5' goto five if '%choice%'=='6' goto six rem if '%choice%'=='7' goto seven rem if '%choice%'=='8' goto eight if '%choice%'=='9' goto nine if '%choice%'=='0' goto end if '%choice%'=='' goto start rem при использовании DHCP удобно просто нажимать Enter и сразу видеть - получен ли IP-адрес или нет ECHO "%choice%" is not valid. Please try again ECHO. goto start rem если введенное пользователем значение не предусмотрено, то начать сначала :one rem LAN DHCP netsh interface ipv4 set address name="Подключение по локальной сети 2" source=dhcp netsh interface ipv4 set dns name="Подключение по локальной сети 2" source=dhcp goto start :two rem LAN 192.168.1.XXX (gw=YYY) ECHO Manual choice set /p ip=Enter the last octet of your IP 192.168.1. rem ввод значения последнего октета IP-адреса вручную set /p gw=Enter the last octet of your GW 192.168.1. rem ввод значения последнего октета шлюза вручную if '%gw%'=='0' (netsh interface ipv4 set address name="Подключение по локальной сети 2" static 192.168.1.%ip% 255.255.255.0) else (netsh interface ipv4 set address name="Подключение по локальной сети 2" static 192.168.1.%ip% 255.255.255.0 192.168.1.%gw%) rem if '%gw%'!==!'0' (netsh interface ipv4 add dns "LAN" 192.168.1.%gw% 2) rem если нужен просто IP-адрес и маска (напимер, по WLAN - интернет, а по LAN надо настроить какую-то железку), то вводим 0 в качестве GW и он (GW) прописываться не будет rem netsh interface ipv4 set address name="LAN" static 192.168.1.%ip% 255.255.255.0 192.168.1.%gw% rem netsh interface ipv4 add dns "LAN" 192.168.1.%gw% 2 goto start :three rem LAN DNS rem netsh interface ipv4 set address name="LAN" static 10.253.0.35 255.255.255.192 10.253.0.7 rem netsh interface ipv4 set dnsserver "LAN" static none netsh interface ipv4 set dnsserver "LAN" static none netsh interface ipv4 add dns "LAN" 192.168.222.150 1 netsh interface ipv4 add dns "LAN" 192.168.222.152 2 rem netsh interface ipv4 add dns "LAN" 4.2.2.2 3 rem netsh interface ipv4 add dns "LAN" 8.8.8.8 4 goto start :four rem WLAN DHCP netsh interface ipv4 set address name="WLAN" source=dhcp netsh interface ipv4 set dns name="WLAN" source=dhcp goto start :five rem WLAN Home netsh interface ipv4 set address name="WLAN" static 192.168.1.200 255.255.255.0 192.168.1.254 netsh interface ipv4 set dnsserver "WLAN" static none netsh interface ipv4 add dns "WLAN" 192.168.1.254 1 netsh interface ipv4 add dns "WLAN" 212.154.163.162 2 netsh interface ipv4 add dns "WLAN" 4.2.2.2 3 netsh interface ipv4 add dns "WLAN" 8.8.8.8 4 goto start :six rem WLAN Work netsh interface ipv4 set address name="WLAN" static 10.253.0.35 255.255.255.192 10.253.0.7 netsh interface ipv4 set dnsserver "WLAN" static none netsh interface ipv4 add dns "WLAN" 212.154.163.162 1 netsh interface ipv4 add dns "WLAN" 212.19.149.178 2 netsh interface ipv4 add dns "WLAN" 4.2.2.2 3 netsh interface ipv4 add dns "WLAN" 8.8.8.8 4 goto start :nine ping.exe www.google.com -t rem бесконечный ping, прерывается вводом Ctrl+C, а затем Y (завершить выполнение файла) или N (не завершать выполнение) и Enter goto start :end rem полезные команды: rem timeout 5 rem эта команда приостанавливает выполнение файла на 5 секунд rem pause rem приостанавливает выполнение файла, выводит сообщение "нажмите любую клавишу для продолжения" и ждет нажатия любой клавиши :) rem pause > null rem то же, только без вывода сообщения на экран rem cls rem очищает экран |
|
Отправлено: 12:38, 14-07-2016 |
Старожил Сообщения: 303
|
Профиль | Отправить PM | Цитировать Все решил проблему, выложу оптимизированный скрипт позже
оставил поля вдруг кому что понадобиться: @ECHO off cls netsh interface ipv4 show ipaddresses rem netsh interface ipv4 show ipaddresses "LAN" normal rem просмотр текущей конфигурации сетевой карты "LAN" netsh interface ipv4 show dnsservers rem просмотр dns-серверов "LAN" rem netsh interface ipv4 show addresses ECHO. ECHO Select LAN interface for EDIT goto idlan :start cls ECHO. ECHO 1 LAN DHCP ECHO 2 LAN 192.168.1.XXX (gw=YYY) ECHO 3 LAN DNS rem ECHO 4 LAN rem ECHO 4 WLAN DHCP rem ECHO 5 WLAN Home rem ECHO 6 WLAN Work ECHO 9 ping www.google.com -t ECHO 0 Exit rem вывод меню для пользователя set choice= rem обнуление переменной choice set /p choice=Enter the number of your choice: rem ввод пользователем значения переменной choice if '%choice%'=='1' goto one rem если значение choice равно единице, то перейти к метке one if '%choice%'=='2' goto two if '%choice%'=='3' goto three rem if '%choice%'=='4' goto four rem if '%choice%'=='4' goto idlan if '%choice%'=='5' goto five if '%choice%'=='6' goto six rem if '%choice%'=='7' goto seven rem if '%choice%'=='8' goto eight if '%choice%'=='9' goto nine if '%choice%'=='0' goto end if '%choice%'=='' goto start rem при использовании DHCP удобно просто нажимать Enter и сразу видеть - получен ли IP-адрес или нет ECHO "%choice%" is not valid. Please try again ECHO. goto start rem если введенное пользователем значение не предусмотрено, то начать сначала :idlan set id= set /p id=Enter interface: goto start :one rem LAN DHCP netsh interface ipv4 set address name=%id% source=dhcp netsh interface ipv4 set dns name=%id% source=dhcp goto start :two rem LAN 192.168.1.XXX (gw=YYY) ECHO Manual choice set /p ip=Enter the last octet of your IP 192.168.1. rem ввод значения последнего октета IP-адреса вручную set /p gw=Enter the last octet of your GW 192.168.1. rem ввод значения последнего октета шлюза вручную if '%gw%'=='0' (netsh interface ipv4 set address name=%id% static 192.168.1.%ip% 255.255.255.0) else (netsh interface ipv4 set address name=%id% static 192.168.1.%ip% 255.255.255.0 192.168.1.%gw%) rem if '%gw%'!==!'0' (netsh interface ipv4 add dns "LAN" 192.168.1.%gw% 2) rem если нужен просто IP-адрес и маска (напимер, по WLAN - интернет, а по LAN надо настроить какую-то железку), то вводим 0 в качестве GW и он (GW) прописываться не будет rem netsh interface ipv4 set address name="LAN" static 192.168.1.%ip% 255.255.255.0 192.168.1.%gw% rem netsh interface ipv4 add dns "LAN" 192.168.1.%gw% 2 goto start :three rem LAN DNS rem netsh interface ipv4 set address name="LAN" static 10.253.0.35 255.255.255.192 10.253.0.7 rem netsh interface ipv4 set dnsserver "LAN" static none netsh interface ipv4 set dnsserver %id% static none set dns1= set /p dns1=Enter DNS #1: netsh interface ipv4 add dns %id% %dns1% 1 netsh interface ipv4 add dns %id% 192.168.222.152 2 rem netsh interface ipv4 add dns "LAN" 4.2.2.2 3 rem netsh interface ipv4 add dns "LAN" 8.8.8.8 4 goto start :four rem WLAN DHCP netsh interface ipv4 set address name="WLAN" source=dhcp netsh interface ipv4 set dns name="WLAN" source=dhcp goto start :five rem WLAN Home netsh interface ipv4 set address name="WLAN" static 192.168.1.200 255.255.255.0 192.168.1.254 netsh interface ipv4 set dnsserver "WLAN" static none netsh interface ipv4 add dns "WLAN" 192.168.1.254 1 netsh interface ipv4 add dns "WLAN" 212.154.163.162 2 netsh interface ipv4 add dns "WLAN" 4.2.2.2 3 netsh interface ipv4 add dns "WLAN" 8.8.8.8 4 goto start :six rem WLAN Work netsh interface ipv4 set address name="WLAN" static 10.253.0.35 255.255.255.192 10.253.0.7 netsh interface ipv4 set dnsserver "WLAN" static none netsh interface ipv4 add dns "WLAN" 212.154.163.162 1 netsh interface ipv4 add dns "WLAN" 212.19.149.178 2 netsh interface ipv4 add dns "WLAN" 4.2.2.2 3 netsh interface ipv4 add dns "WLAN" 8.8.8.8 4 goto start :nine ping.exe www.google.com -t rem бесконечный ping, прерывается вводом Ctrl+C, а затем Y (завершить выполнение файла) или N (не завершать выполнение) и Enter goto start :end rem полезные команды: rem timeout 5 rem эта команда приостанавливает выполнение файла на 5 секунд rem pause rem приостанавливает выполнение файла, выводит сообщение "нажмите любую клавишу для продолжения" и ждет нажатия любой клавиши :) rem pause > null rem то же, только без вывода сообщения на экран rem cls rem очищащет экран |
Последний раз редактировалось Fantastish, 14-07-2016 в 13:21. Отправлено: 13:13, 14-07-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Fantastish:
|
|
Отправлено: 01:57, 15-07-2016 | #3 |
Старожил Сообщения: 303
|
Профиль | Отправить PM | Цитировать 866, пробовал ее изменять, самым простым способом вышло просто по ID интерфейса все делать
|
Отправлено: 08:54, 15-07-2016 | #4 |
Ветеран Сообщения: 547
|
Профиль | Сайт | Отправить PM | Цитировать Fantastish,
я стараюсь сразу переименовывать подключения. |
|
------- Отправлено: 10:05, 18-07-2016 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Скрипт изменения сетевых настроек | align | Microsoft Windows 7 | 25 | 03-03-2014 09:19 | |
Доступ - Запрет изменения сетевых настроек в Windows XP Home Edition | Den_93rus | Microsoft Windows 2000/XP | 4 | 28-04-2010 11:41 | |
CMD/BAT - [решено] Батник для изменения сетевых настроек. | dvassilyev | Скриптовые языки администрирования Windows | 12 | 12-04-2010 16:40 | |
Разное - [решено] Автоматизация настроек IE7 | SANIOK_AV | Microsoft Windows 2000/XP | 10 | 08-12-2008 18:48 | |
Разное - [решено] права изменения сетевых настроек | nmn | Microsoft Windows 2000/XP | 1 | 28-10-2008 19:59 |
|