Показать полную графическую версию : [решено] Настройка "Подключения по локальной сети" с помощью CMD
Подскажите пожалуйста можно ли с помощью cmd(bat)-файла настроить подключение по локальной сети, свойства "Протокола Интернета (TCP/IP)": IP-адрес, Маска подсети, Основной шлюз, Предпочитаемый DNS-сервер, Альтернативный DNS-сервер и т.д.
IP-адрес, Маска подсети, Основной шлюз »
netsh int ip set address /?
Предпочитаемый DNS-сервер, Альтернативный DNS-сервер »
netsh int ip set dns /?
P.S. для XP/2003
doomspace
15-10-2009, 13:16
1.Настройте сеть (т.е. выставьте ip, subnet, gateway, dns, wins…)
2.Запустите command prompt - нажмите Win+R и введите cmd
3.Введите:
netsh -c interface dump > c:/homesettings.txt
Примечание: путь к файлу и его имя можете выбрать по своему желанию
4.Теперь настройте другую сеть - повторите шаги с 1 по 3
5.На desktop’е создайте ссылку (клик правой кнопкой мыши - New - Shortcut), которая будет указывать на
%windir%\system32\netsh.exe -f c:\homesettings.txt
Примечание: путь к файлу и его имя надо указать то же, что и в пункте 3
Для других компов меняем содержимое файлика homesettings.txt
amel27 немного не разобрался, но ответ уже есть.
Большое спасибо doomspace за быстрый и очень полезный ответ, cmd я сам сваяю :)
Итог, по заданному мной вопросу (составленный по ответу doomspace) :
Для снятие данных сетевых настроек, запускаем файл (cmd)
@echo off
netsh -c interface dump > netsettings.txt
exit
Данные помещаются в рядом лежащий файл netsettings.txt
Корректируем файл netsettings.txt оставив в нем нужные настройки.
Примерно так
# -----------------------------------------
# Настройка IP-интерфейсов
# -----------------------------------------
pushd interface ip
# Интерфейс настройки IP для "Подключение по локальной сети"
set address name="Подключение по локальной сети" source=static addr=192.168.1.10 mask=255.255.255.0
set address name="Подключение по локальной сети" gateway=192.168.1.1 gwmetric=0
set dns name="Подключение по локальной сети" source=static addr=82.209.213.60 register=PRIMARY
add dns name="Подключение по локальной сети" addr=193.232.248.2 index=2
set wins name="Подключение по локальной сети" source=static addr=none
popd
# Конец настройки интерфейса IP
Полученный netsettings.txt размещаем рядом с файлом (cmd)
@echo off
start /wait netsh.exe -f netsettings.txt
exit
на другом компьютере настройки которого нужно изменить и запускаем его.
Настройки изменены, спасибо doomspace.
Еще одно решение, более гибкое и интерестное:
CMD-файл
@echo off
netsh interface ip set address name="Подключение по локальной сети" static 192.168.1.2 255.255.255.0 192.168.1.1 0
netsh interface ip set dns name="Подключение по локальной сети" static 82.209.213.60 primary
netsh interface ip add dns name="Подключение по локальной сети" 193.232.248.2 2
exit
Главное файл должен быть написан в кодировке DOS
Arhimed64
10-11-2009, 00:09
А в Висте все это будет работать?
Всех все устраивает в этих батниках?
Но они же не универсальны!!!
И вся попа кроется в том что (лично я не знаю) как узнать название "Подключение по локальной сети".
Ведь все мы не раз сталкивались с тем что у кого то это не "Подключение по локальной сети", а "Подключение по локальной сети 5" или еще хлеще "inet" ... и тому подобное
Какая же это автоматизация ... если все равно лезешь и правишь ручками! :help:
Если кто в курсе - подскажите.
Petya V4sechkin
04-01-2010, 16:57
как узнать название
[решено] Автомат. изменение IP адреса (http://forum.oszone.net/thread-155052.html)
El Sanchez
04-01-2010, 17:56
как узнать название "Подключение по локальной сети" »
for /f "tokens=2 delims==" %%a in ('wmic path Win32_networkadapter where ^"NetConnectionStatus^=2^" get NetConnectionID /value') do echo %%a
Цитировать »
класс ...!!!
Сколько в гугле не смотрел но найти не могу ответ на свой вопрос:
Хранит ли реестр текущее состояние сетевого адаптера? Именно интересует есть ли такой параметр где бы отображалось при включенном кабеле (Link UP) одно значение и другое при Link Down (сетевой кабель не подключен) - другое ...
Или какие могут быть варианты ... надо просто определять для отдельно каждого адаптера значение в Up или Down подключение ...
ipconfig не предлагать ... нужно четкое получение состояния ... пробую писать прогу ))) :teeth:
и getmac тоже не хочется ...
Пару лет назад, появлялась необходимость в написании таких батников, хоть уже и всё сказано, всё же приведу свои примерчики, может быть будут полезны:
netsh interface ipv4 set address "Подключение по локальной сети" static 10.9.46.107 255.255.254.0 10.9.46.1 0
netsh interface ipv4 set dnsserver "Подключение по локальной сети" static 192.168.3.1
netsh interface ipv4 add dnsserver "Подключение по локальной сети" 10.9.20.242 index=2
Где "Подключение по локальной сети" - "название вашего соединения".
netsh interface ipv4 set address "Подключение по локальной сети" static 10.9.46.107 255.255.254.0 10.9.46.1 0
netsh interface ipv4 add address "Подключение по локальной сети" 192.168.1.3 255.255.255.0
netsh interface ipv4 set dnsserver "Подключение по локальной сети" static 192.168.3.1
netsh interface ipv4 add dnsserver "Подключение по локальной сети" 10.9.20.242 index=2
Как видно выше, присутствует дополнительный адрес подсети и его dns. Другими словами, второй ip и dns для одной карты...
И т.д., /? в помощь.
AHTuKuJIJIeP
05-03-2010, 23:43
Цитата SAPINGT:
как узнать название "Подключение по локальной сети" »
Код:
for /f "tokens=2 delims==" %%a in ('wmic path Win32_networkadapter where ^"NetConnectionStatus^=2^" get NetConnectionID /value') do echo %%a »
пробую этот код, и не работает. Работает ли он на Windows 7 ?
У меня на Windows 7 работает, просто окно быстро закрывается, в конце кода можно добавить pause для прочтения. Выдает название подключения по локальной сети, к которому подключен кабель. А можно сделать код который после определения активного сетевого подключения переименовывал его в конкретное имя, например "Inet"?
Вот как сделалать пришлось мне для одного ПК.
Кодировка DOS
@echo off
echo ‘¬Ґ** *¤аҐб*, ¬*бЄЁ Ё и«о§
@echo off
netsh interface ip set address name="Џ®¤Є«озҐ*ЁҐ Ї® «®Є*«м*®© бҐвЁ" source=static 192.168.1.222 255.255.255.0 192.168.1.200 1
echo Џа®ЇЁиҐ¬ „Ќ‘ бҐаўҐа
@echo off
netsh int ip set dns name="Џ®¤Є«озҐ*ЁҐ Ї® «®Є*«м*®© бҐвЁ" source=static addr=192.168.1.101
@echo off
netsh int ip add dns name="Џ®¤Є«озҐ*ЁҐ Ї® «®Є*«м*®© бҐвЁ" 192.168.1.200
@echo off
netsh int ip show address >> .\change_network.log
@echo off
netsh int ip show dns >> .\change_network.log
А как с помощью батника не только определить текущее название сетевого подключения и ввести его настройки, но и переименовать его из "Подключение по локальной сети", например, в "Интернет" ?
Petya V4sechkin
14-09-2010, 12:14
Nun-Nun, на основе этого скрипта (http://blogs.technet.com/b/heyscriptingguy/archive/2005/05/11/how-can-i-rename-a-local-area-connection.aspx) делаем RenameNetworkConnection.vbs
If WScript.Arguments.Count <> 2 Then
WScript.Echo "Неверное число параметров." & vbCrLf & _
"Использование: CScript.exe " & WScript.ScriptName & _
" <Старое имя интерфейса> <Новое имя>"
WScript.Quit(1)
End If
Const NETWORK_CONNECTIONS = &H31&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(NETWORK_CONNECTIONS)
Set colItems = objFolder.Items
For Each objItem in colItems
If objItem.Name = WScript.Arguments(0) Then
objItem.Name = WScript.Arguments(1)
End If
Next
и запускаем его из батника.
Попробовал. Ввёл в текст скрипта свои названия, скопировал скрипт в текстовый файл, сохранил как RenameNetworkConnection.vbs. Запустил этот файл из батника, и что-то не пошло - никакого переименования не происходит, а на экран выводится сообщение (см. скриншот):
Petya V4sechkin
14-09-2010, 14:17
Ввёл в текст скрипта свои названия
Не надо в текст вводить свои названия.
на экран выводится сообщение
Сохраните скрипт в стандартной кодировке win-1251, тогда увидите:
Неверное число параметров.
Использование: CScript.exe RenameNetworkConnection.vbs <Старое имя интерфейса> <Новое имя>
Это должно быть понятно.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.