Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Настройка "Подключения по локальной сети" с помощью CMD

Ответить
Настройки темы
CMD/BAT - [решено] Настройка "Подключения по локальной сети" с помощью CMD

Аватара для Oleg48

Старожил


Сообщения: 158
Благодарности: 17

Профиль | Отправить PM | Цитировать


Изменения
Автор: Oleg48
Дата: 15-10-2009
Подскажите пожалуйста можно ли с помощью cmd(bat)-файла настроить подключение по локальной сети, свойства "Протокола Интернета (TCP/IP)": IP-адрес, Маска подсети, Основной шлюз, Предпочитаемый DNS-сервер, Альтернативный DNS-сервер и т.д.

Отправлено: 10:24, 15-10-2009

 

Аватара для boss911

Alien


Сообщения: 4262
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Цитата Petya V4sechkin:
C:\Program Files\AVerTV\msxml3.dll »
Дарегил библиотеку и перерегистрировал C:\WINDOWS\system32\msxml3.dll , код заработал. Все же докопались, спасибо огромное.

Я так понимаю, разрабы AverTV 5.5.0.25 криво написали инсталлятор, по идеи тот должен был проверить наличие в системе msxml3.dll и если его нет, ставить и регистрировать из своего дистрибутива. Теперь придется ковырять их MSI (удалять его от туда). В папке AverTV есть еще msxml3a.dll и msxml3r.dll (у них нет DllRegisterServer), я так понял, это часть MSXML3, только не понятно, что за файл "а", их тоже грохать?

Насколько я понял, WMIC зависит от MSXML3, а у всех ли есть MSXML3, на каких ОС и на всех ли SP? В чистом XP SP3, точно знаю, что в составе есть.

Отправлено: 11:52, 25-11-2011 | #51



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для boss911

Alien


Сообщения: 4262
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Имеется два сетевых интерфейса:
Код: Выделить весь код
Подключение по локальной сети
Подключение по локальной сети 2
Использую код:
Код: Выделить весь код
for /f "tokens=2 delims==" %%a in ('wmic path Win32_networkadapter where ^"NetConnectionStatus^=2^" get NetConnectionID /value') do set NETWORK=%%a

echo %NETWORK%
В таком случае имя будет получено "Подключение по локальной сети 2". Вообще-то, в других случаях, оно всегда берет первое по списку имя, но не в этом случае, оно зараза берет второе по списку подключение - "Подключение по локальной сети 2" и хоть тресни, не понятно чего.

Как с этим бороться, как ему жестко задать, что надо брать имя по списку которое первое, даже с вышеуказанным случаем?

Отправлено: 13:49, 25-11-2011 | #52


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


boss911, для получения нужной сортировки используйте «sort.exe». Но, думаю, дело не в этом.

Отправлено: 17:47, 25-11-2011 | #53



Moderator


Сообщения: 53482
Благодарности: 15510

Профиль | Отправить PM | Цитировать


Цитата boss911:
В папке AverTV есть еще msxml3a.dll и msxml3r.dll (у них нет DllRegisterServer), я так понял, это часть MSXML3, только не понятно, что за файл "а", их тоже грохать?
Это ресурсные библиотеки, на систему уже не повлияют (если ссылок в реестре нет).

Цитата boss911:
WMIC зависит от MSXML3
Судя по логу, использует для парсинга XSL-файлов в папке \WINDOWS\system32\wbem
От MSXML3 вообще много что зависит (например, IE и MMC).

Цитата boss911:
у всех ли есть MSXML3, на каких ОС и на всех ли SP?
Список версий модулей синтаксического анализа XML Microsoft (MSXML)

Цитата boss911:
Все же докопались, спасибо огромное.
Не за что :)
Любопытный случай (казалось бы, при чем тут WMIC и AverTV). Можно (было бы) писать статью типа "Дело о неработающем WMIC" (в стиле Марка Руссиновича).

Последний раз редактировалось Petya V4sechkin, 25-11-2011 в 18:43.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:31, 25-11-2011 | #54


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1273
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Цитата boss911:
Вообще-то, в других случаях, оно всегда берет первое по списку имя »
Сначала первую строку вывода, потом вторую и т.д. и в конце цикла переменная %a будет содержать значение последней строки вывода for. Поэтому:
Код: Выделить весь код
set NETWORK=
for /f "tokens=2 delims==" %%a in ('wmic path Win32_networkadapter where ^"NetConnectionStatus^=2^" get NetConnectionID /value') do if not defined NETWORK set NETWORK=%%a
echo %NETWORK%
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:39, 25-11-2011 | #55


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Petya V4sechkin:
Любопытный случай (казалось бы, при чем тут WMIC и AverTV). Можно (было бы) писать статью типа "Дело о неработающем WMIC" (в стиле Марка Руссиновича). »
Я бы не отказался почитать Ваши статьи.


Цитата El Sanchez:
Поэтому: »
El Sanchez, это даже лучше, нежели было здесь. Для коротких циклов (понятно, что длинные циклы разбора многомегабайтных файлов быстрее будет — прерывать) самое оно. Пошло в «Избранное».

Отправлено: 19:38, 25-11-2011 | #56


Аватара для boss911

Alien


Сообщения: 4262
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Цитата Petya V4sechkin:
Любопытный случай (казалось бы, при чем тут WMIC и AverTV). »
Да тут дело не в AverTV, а более глобально - в криво написанных инсталляторах. Оно обязано проверить наличие нужной версии MSXML и только потом ставить или не ставить, иначе может быть конфликт версий, что приводит к сбоям в приложениях, что у меня и произошло. Ковырнул я их MSI, выдрал эти файлы, теперь больше не гадит при установке.


Цитата El Sanchez:
Сначала первую строку вывода, потом вторую и т.д. и в конце цикла переменная %a будет содержать значение последней строки вывода for. »
Я бы не сказал. Например, имеем:
Код: Выделить весь код
Подключение по локальной сети
Подключение по локальной сети 2
оно всегда будет брать последнее. Провел эксперимент: назвал "Lan" и "Lan 2", оно взяло первое, потом я называл подключения по-разному, оно всегда брало первое по имени подключение, которое идет первым по списку, что логично (правда я тогда пробовал другой код, так как тогда у меня WMIC не работал). Мне, в принципе, так и нужно, чтобы брало всегда первое по списку имен подключение.

Спасибо. Сейчас нет возможности проверить ваш код (у меня одна сетевая), появится возможность, проверю и отпишусь. Только что проверил, теперь все работает, как мне нужно, еще раз спасибо.

Последний раз редактировалось boss911, 26-11-2011 в 03:16.


Отправлено: 01:21, 26-11-2011 | #57


Аватара для boss911

Alien


Сообщения: 4262
Благодарности: 1030

Профиль | Отправить PM | Цитировать


El Sanchez

К сожалению, это метод работает по-разному. Если у меня между "Подключение" и "Подключение 2" выбирается первое, то на другом компе уже выбирается второе. Если использовать этот код, то ситуация уже совсем противоположна будет. Я не понимаю, из-з чего это зависит. То есть, нет четкой уверенности, что всегда будет выбрано первое подключение по списку имен.

Дело в том, что на каждом компьютере по-разному выводит порядок NetConnectionID, если у меня так выводит:
Код: Выделить весь код
NetConnectionID=Подключение 2
NetConnectionID=Подключение
то на другом компе порядок может быть иным (так оно и есть). Я не понимаю, из-з чего это зависит.

Если это возможно, помогите решить этот вопрос. Как к этому прикрутить SORT.EXE я не знаю.

Отправлено: 05:16, 26-11-2011 | #58


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
for /f "tokens=2 delims==" %%a in (
	'wmic path Win32_networkadapter get NetConnectionID /value ^| sort.exe'
) do echo %%a
Результат…
Код: Выделить весь код
1394-соединение
Подключение по локальной сети 2
Подключение по локальной сети 6
Подключение по локальной сети


На вышеприведённом коде сие будет выглядеть:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set NETWORK=

for /f "tokens=2 delims==" %%a in (
	'wmic path Win32_networkadapter where "NetConnectionStatus=2" get NetConnectionID /value ^| sort.exe'
) do if not defined NETWORK set NETWORK=%%a

echo %NETWORK%

endlocal
exit /b 0

Отправлено: 06:08, 26-11-2011 | #59


Аватара для boss911

Alien


Сообщения: 4262
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
for /f "tokens=2 delims==" %%a in (
	'wmic path Win32_networkadapter get NetConnectionID /value ^| sort.exe'
) do echo %%a
Мой результат
Код: Выделить весь код
Подключение 2
Подключение

В данном случае, сортировка явно боком работает, аналогично, если названо "Lan" и "Lan 2", первым в списке "Lan 2". Где тут логика или сортировка работает через одно место? Кстати, в вашем примере похожий случай.

Отправлено: 11:52, 26-11-2011 | #60



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Настройка "Подключения по локальной сети" с помощью CMD

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
D-Link - D-LINK 300T "нет подключения по локальной сети"... yanvlad Сетевое оборудование 32 30-12-2009 08:48
Доступ - [решено] учетная запись "пользователь" нет поключения к локальной сети kanstantsin Microsoft Windows 2000/XP 5 30-11-2009 00:38
[решено] Доступ к локальной сети через входящее "Dial up" подключение Eugene R Microsoft Windows NT/2000/2003 6 10-03-2009 09:54
VBS/WSH/JS - [решено] Как добавить "сложное" значение в "бинарный" параметр реестра с помощью WSH 13Demon Скриптовые языки администрирования Windows 1 10-02-2009 09:47
[решено] Не видны подключения по локальной сети в папке "Сетевые подключения" Skoba Microsoft Windows NT/2000/2003 12 08-10-2007 09:06




 
Переход