![]() |
Скрипт изменения сетевых настроек
Подскажите пожалуйста можно ли через командную строку или еще как-то, изменить сетевые настройки, а именно:
1. Во вкладке Сеть убрать галочку с Протокол интернета версии 6 2. Заходим в Протокол интернета версии 4 -> Дополнительно -> WINS 2.1 Убрать галочку с Включить просмотр LMHOSTS 2.2 В Параметры NetBIOS выбрать вместо первого второй пункт З.Ы. Пытаюсь лопатить реестр, что-то не получается ничего З.Ы.2 IP, DNS, шлюз, WINS удалось установить с помощью командной строки а именно netsh interface ip ... |
Цитата:
Он может принимать значения 0 По умолчанию (первая галочка) 1 Включить NetBIOS через TCP\IP (вторая галочка) 2 Отключить NetBIOS через TCP\IP (третья галочка) или же используя утилиту wmic В начале выполните: wmic nicconfig get caption для определения индекса подключения по локальной сети\ беспроводного подключения...(принимает значения 0,1,2,3,4,5,....) затем выяснив индекс подключения , выполните: wmic nicconfig where index=тут номер индекса call SetTcpipNetbios тут значение параметра NetBIOSOption ( то есть 0 или 1 или 2) Пример в моем случае: wmic nicconfig where index=7 call SetTcpipNetbios 2 |
Цитата:
В редакторе реестра по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters создать Параметр DWORD с именем DisabledComponents и задайте ему значение FF. после перегрузитесь. Протокол TCP/IP6 будет отключен для всех интерфейсов. Цитата:
0 отключен LMHOSTS 1 включен LMHOSTS |
Соответственно все выше предложенное можно запихнуть в bat-файл и запускать его на исполнение.
|
diagnoz_, спасибо за ответ. По LMHOSTS все отлчино.
По NetBIOS... а можно без участия человека определить index локальной сети? Скрипт должен быть автоматическим. А по TCPIP6, я как раз таки и читал ту статью от MS, которую ты мне скинул. Но редактирование реестра как ничего не давало, так и не дает. Даже перезагрузка не помогает - галочка остается. Ставлю значение FF как ты написал, а не как в статье 0xffffffff - думаю может это поможет, но увы нет. reg add "HKLM\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters" /v DisabledComponents /t reg_dword /d ff /f Ошибка. Неверный синтаксис. Задайте допустимое шестнадцатеричное значение параметра "/d". В таком виде команда проходит: reg add "HKLM\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters" /v DisabledComponents /t reg_dword /d 0xffffffff /f ![]() |
За скрипт сразу не отвечу. а вот это можно также использовать. это тоже самое, что и через скрипт.
Цитата:
|
diagnoz_, это все понятно, но проблема в том, что точки после слова TCPIP они на разных компьютерах разные, к примеру вот такие HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\Tcpip_{1BA36A12-4D81-4838-92EF-A39325522CF1} или Tcpip_{88302C99-1550-41EE-8E66-FB95C5471E6C}. В ручную кончено можно зайти и изменить параметр, но тогда уж проще в ручную зайти в виндовый интерфейс и кликнуть мышкой. А чтобы это выполнядось скриптом, нужно как-то индентифицировать интерфейс локальной сети - либо _{88302C99-1550-41EE-8E66-FB95C5471E6C} либо index для wmic
|
align,
Предлагаю использовать утилиту psexec для удаленного выполнения команд. psexec \\ip_адрес -u имя_компьютера -p пароль cmd для доступа к удаленному ПК. Только для доступа нужно на том ПК отключить Общий доступ или включить Гостя. так как не будет доступа к удаленному ПК. если отключение шары не поможет получить доступ, то нужно в панель управления - администрирование - локальная политика безопасности - локальные политики - параметры безопасности - сетевой доступ: модель совместного досутпа..... выставить на "обычную". или же пробовать через wmic wmic /NODE:"ip_адрес" /USER:"имя_компьютера" /PASSWORD:"пароль" |
Ой, мне кажется нас уже куда-то далеко занесло :)
Я думаю стоит начать сначала! В чем заключается проблема, у меня в руках периодически появляются компы, в которых нужно вбить ОДИНАКОВЫЕ! сетевые настройки, я пишу батник, который будет устанавливать их, ибо муторно и есть шанс ошибиться. ip,маска,dns,шлюз, wins я прописываю батником, теперь еще LMHOST галочку снимаю, остается покорить два параметра - галочка на IPv6 и в NetBios сменить опцию и будет счастье - быстро и без ошибок! |
Да я Вас понял, просто для того, чтобы узнать необходимую инфу на удаленном ПК нужно на него зайти и выполнить необходимые команды. :)
|
То есть примерно это выглядит так:
psexec.exe \\ip_адрес cmd /c путь к bat-файлу таким образом на какой-то удаленной машине будет запущен какой-то сделанный Вами bat-файл лежащий по такому-то пути на Вашей машине. |
Так компы не удаленные - вставляем флешку, запускаем батник и счастье :)
Выставляя IP,DNS и т.д. я же пишу netsh interface ip set address name="Подключение к локальной сети" .... я сейчас читаю, может как-то через такое обращение можно идентифицировать точку обращения и сменить опцию NetBios |
align,
понял :) align, Забейте в bat-ник выше приведенное wmic nicconfig where index=тут номер индекса call SetTcpipNetbios тут значение параметра NetBIOSOption ( то есть 0 или 1 или 2) и решится проблема №2 :) Только нужно подсмотреть индекс подключения. |
Цитата:
|
diagnoz_, могу поделится тем что нарыл, может тебя это наведет на мысль.
У wmic таки есть параметр который отвечает за имя сетевого интерфейса и это NetConnectionID wmic nic get index,name,NetConnectionID Index Name NetConnectionID 1 RAS асинхронный адаптер 2 Минипорт WAN (L2TP) 3 Минипорт WAN (PPTP) 4 Минипорт WAN (PPPoE) 5 Прямой параллельный порт 6 Минипорт WAN (IP) 7 Минипорт планировщика пакетов 8 Marvell Yukon 88E8001/8003/8010 PCI Gigabit Ethernet Controller Подключение по локальной сети 9 Минипорт планировщика пакетов 10 Microsoft видео или ТВ подключение 11 Kaspersky Anti-Virus NDIS Miniport 12 Kaspersky Anti-Virus NDIS Miniport Логично было бы предположить что предложенную тобой команду wmic nicconfig where index=7 call SetTcpipNetbios 2 можно изменить под то что я нарыл, но видимо что-то с синтаксисом, я никак не могу понять что не так. wmic nicconfig where NetConnectionID="Подключение по локальной сети" call SetTcpipNetbios 2 по - Неверная команда для псевдонима. :) wmic nicconfig where NetConnectionID="Подключение%20%по%20%локальной%20%сети" call SetTcpipNetbios 2 ОШИБКА: Код = 0x80041017 Описание = Недопустимый запрос Услуга = WMI |
я делал так:
по команде wmic nicconfig get caption увидел индексы интерфейсов, то есть вот так: [00000001] RAS асинхронный адаптер [00000002] Минипорт WAN (L2TP) [00000003] Минипорт WAN (PPTP) [00000004] Минипорт WAN (PPPoE) [00000005] Прямой параллельный порт [00000006] Минипорт WAN (IP) [00000007] Marvell Yukon 88E8001/8003/8010 P [00000009] Eset Personal Firewall Miniport где [00000001] - 00000009] - это и есть индексы. это просто цифра от 1 до 9. Смотрю что сетка у меня работает по сетевой Marvell Yukon 88E8001/8003/8010 P , а значит соответственно индекс у нее 7. следовательно ввожу команду для своего интерфейса: wmic nicconfig where index=7 call SetTcpipNetbios 2 где 2 это значение параметра NetBIOSOption ( то есть 0 или 1 или 2) |
diagnoz_, мы уже это обсудили, тут все понятно мне, но это практически ручной режим, как видишь я стремлюсь к полностью автоматическому режиму, если правильным синтаксисом дать понять что нужно обращаться к нужному интерфейсу твоя команда сделает все сама и не надо будет делать промежуточных запросов и выбирать индекс
|
align,
Вот скрипт wmic изменяющий сразу на активном интерфейсе настройки NetBIOS без указания индекса: wmic nicconfig where (IPEnabled=TRUE) call SetTcpipNetbios 1 где TcpipNetbios может принимать значения 0, 1, 2 |
Цитата:
|
Вот еще такой забавный вариант вычитал, но тоже требует воткнуть кабель... увы.
wmic nicconfig where TcpipNetbiosOptions=0 call SetTcpipNetbios 1 |
О ужас, оказывается без кабеля даже wmic nicconfig where index=7 call SetTcpipNetbios 2 не работает... похоже без кабеля ничего не будет работать.
|
align,
Ну конечно а как без этого! :) |
diagnoz_, ну вот нет кабеля и все :) я придумал другой путь, но не могу реализовать, бьюсь второй час. Написал на другому форуме, но там предлагают vbs. Сижу читаю про vbs, но там еще хуже чем в cmd ))) может ты и в этом шаришь?!?! Заодно заценишь ход моей извращенной мысли ))
Через командную строку нужно отредактировать один параметр реестра, подраздел которого доконца не известен: reg add "HKLM\SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interface\TCPIP_{abcd}" /v NetbiosOptions /t reg_dword /d 2 /f как вместо abcd подставить результат запроса wmic nicconfig where index=8 get settingid SettingID {1BA36A12-4D81-4838-92EF-A39325522CF1} diagnoz_, как видишь я нашел параметр который содержит ключ реестра с нужным интерфейсом |
Хуже, чем в cmd быть не может.
|
Цитата:
|
На другом форуме помогли с написанием vbs скрипта, может кому-то интересно:
Dim objWMIService, colItems, objItem, SettingID, WshShell Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE TcpipNetbiosOptions=0",,48) (или WHERE Index=7) For Each objItem in colItems SettingID = objItem.SettingID Next Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces\TCPIP_" & SettingID & "\NetbiosOptions" , 2, "REG_DWORD" остался один параметр Цитата:
|
Время: 04:25. |
Время: 04:25.
© OSzone.net 2001-