Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   Скрипт изменения сетевых настроек (http://forum.oszone.net/showthread.php?t=278389)

align 26-02-2014 13:11 2315976

Скрипт изменения сетевых настроек
 
Подскажите пожалуйста можно ли через командную строку или еще как-то, изменить сетевые настройки, а именно:

1. Во вкладке Сеть убрать галочку с Протокол интернета версии 6
2. Заходим в Протокол интернета версии 4 -> Дополнительно -> WINS
2.1 Убрать галочку с Включить просмотр LMHOSTS
2.2 В Параметры NetBIOS выбрать вместо первого второй пункт

З.Ы. Пытаюсь лопатить реестр, что-то не получается ничего
З.Ы.2 IP, DNS, шлюз, WINS удалось установить с помощью командной строки а именно netsh interface ip ...

diagnoz_ 26-02-2014 18:28 2316168

Цитата:

Цитата align
Параметры NetBIOS выбрать вместо первого второй пункт »

Запустите редактор реестра и перейдите HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters\Interface\Tcpip.... справа есть параметр NetBIOSOption.
Он может принимать значения
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

diagnoz_ 26-02-2014 18:57 2316186

Цитата:

Цитата align
Во вкладке Сеть убрать галочку с Протокол интернета версии 6 »

Отключить TCP\IP6 можно так для всех интерфейсов.
В редакторе реестра по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters создать Параметр DWORD с именем DisabledComponents и задайте ему значение FF.
после перегрузитесь. Протокол TCP/IP6 будет отключен для всех интерфейсов.

Цитата:

Цитата align
Убрать галочку с Включить просмотр LMHOSTS »

В реестре по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters имеется параметр EnableLMHOSTS. он может принимать значения:
0 отключен LMHOSTS
1 включен LMHOSTS

diagnoz_ 26-02-2014 19:18 2316202

Соответственно все выше предложенное можно запихнуть в bat-файл и запускать его на исполнение.

align 27-02-2014 09:27 2316519

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_ 27-02-2014 10:37 2316560

За скрипт сразу не отвечу. а вот это можно также использовать. это тоже самое, что и через скрипт.
Цитата:

Цитата diagnoz_
Запустите редактор реестра и перейдите HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters\Interface\Tcpip.... справа есть параметр NetBIOSOption.
Он может принимать значения
0 По умолчанию (первая галочка)
1 Включить NetBIOS через TCP\IP (вторая галочка)
2 Отключить NetBIOS через TCP\IP (третья галочка) »


align 27-02-2014 11:23 2316577

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

diagnoz_ 27-02-2014 13:29 2316656

align,
Предлагаю использовать утилиту psexec для удаленного выполнения команд.
psexec \\ip_адрес -u имя_компьютера -p пароль cmd для доступа к удаленному ПК.
Только для доступа нужно на том ПК отключить Общий доступ или включить Гостя. так как не будет доступа к удаленному ПК. если отключение шары не поможет получить доступ, то нужно
в панель управления - администрирование - локальная политика безопасности - локальные политики - параметры безопасности - сетевой доступ: модель совместного досутпа..... выставить на "обычную".
или же пробовать через wmic
wmic /NODE:"ip_адрес" /USER:"имя_компьютера" /PASSWORD:"пароль"

align 27-02-2014 13:55 2316671

Ой, мне кажется нас уже куда-то далеко занесло :)

Я думаю стоит начать сначала! В чем заключается проблема, у меня в руках периодически появляются компы, в которых нужно вбить ОДИНАКОВЫЕ! сетевые настройки, я пишу батник, который будет устанавливать их, ибо муторно и есть шанс ошибиться.

ip,маска,dns,шлюз, wins я прописываю батником, теперь еще LMHOST галочку снимаю, остается покорить два параметра - галочка на IPv6 и в NetBios сменить опцию и будет счастье - быстро и без ошибок!

diagnoz_ 27-02-2014 14:24 2316692

Да я Вас понял, просто для того, чтобы узнать необходимую инфу на удаленном ПК нужно на него зайти и выполнить необходимые команды. :)

diagnoz_ 27-02-2014 14:40 2316709

То есть примерно это выглядит так:
psexec.exe \\ip_адрес cmd /c путь к bat-файлу
таким образом на какой-то удаленной машине будет запущен какой-то сделанный Вами bat-файл лежащий по такому-то пути на Вашей машине.

align 27-02-2014 14:48 2316723

Так компы не удаленные - вставляем флешку, запускаем батник и счастье :)

Выставляя IP,DNS и т.д. я же пишу netsh interface ip set address name="Подключение к локальной сети" .... я сейчас читаю, может как-то через такое обращение можно идентифицировать точку обращения и сменить опцию NetBios

diagnoz_ 27-02-2014 14:53 2316725

align,
понял :)

align,
Забейте в bat-ник выше приведенное
wmic nicconfig where index=тут номер индекса call SetTcpipNetbios тут значение параметра NetBIOSOption ( то есть 0 или 1 или 2)
и решится проблема №2 :)
Только нужно подсмотреть индекс подключения.

align 27-02-2014 15:06 2316745

Цитата:

Цитата diagnoz_
и решится проблема №2
Только нужно подсмотреть индекс подключения. »

diagnoz_, я же выше написал, что это не решение проблемы, а ее усложнение. Ну еще разок повторю - вместо того чтобы смотреть индекс сети, мне будет проще зайти в сетевые настройки и кликнуть на нужную опцию. Батник должен все сделать сам, на то он и батник :) Но тут хоть какие-то мысли есть, а по ipv6 вобще засада.

align 27-02-2014 16:32 2316807

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

diagnoz_ 27-02-2014 16:48 2316826

я делал так:
по команде 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)

align 27-02-2014 16:53 2316829

diagnoz_, мы уже это обсудили, тут все понятно мне, но это практически ручной режим, как видишь я стремлюсь к полностью автоматическому режиму, если правильным синтаксисом дать понять что нужно обращаться к нужному интерфейсу твоя команда сделает все сама и не надо будет делать промежуточных запросов и выбирать индекс

diagnoz_ 27-02-2014 20:19 2316906

align,
Вот скрипт wmic изменяющий сразу на активном интерфейсе настройки NetBIOS без указания индекса:
wmic nicconfig where (IPEnabled=TRUE) call SetTcpipNetbios 1
где TcpipNetbios может принимать значения 0, 1, 2

align 28-02-2014 08:39 2317092

Цитата:

Цитата diagnoz_
wmic nicconfig where (IPEnabled=TRUE) call SetTcpipNetbios 1 »

Печаль :( Интерфейс у меня ведь не активный, пока не воткнешь сетевой кабель запрос не работает, а я именно сначала должен настроить сеть и только потом воткнуть сетевой кабель.

align 28-02-2014 09:18 2317105

Вот еще такой забавный вариант вычитал, но тоже требует воткнуть кабель... увы.

wmic nicconfig where TcpipNetbiosOptions=0 call SetTcpipNetbios 1

align 28-02-2014 10:18 2317136

О ужас, оказывается без кабеля даже wmic nicconfig where index=7 call SetTcpipNetbios 2 не работает... похоже без кабеля ничего не будет работать.

diagnoz_ 28-02-2014 12:54 2317205

align,
Ну конечно а как без этого! :)

align 28-02-2014 13:11 2317212

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_, как видишь я нашел параметр который содержит ключ реестра с нужным интерфейсом

Iska 28-02-2014 14:08 2317242

Хуже, чем в cmd быть не может.

align 28-02-2014 14:26 2317255

Цитата:

Цитата Iska
Хуже, чем в cmd быть не может. »

Согласен :) Просто я в cmd хоть что-то знаю, а в vbs не разу не был...

align 03-03-2014 09:19 2318406

На другом форуме помогли с написанием 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"

остался один параметр
Цитата:

Цитата align
1. Во вкладке Сеть убрать галочку с Протокол интернета версии 6 »

Редактирование реестра по совету MS не помогало. Буду рад услышать советы, а пока буду читать...


Время: 04:25.

Время: 04:25.
© OSzone.net 2001-