Показать полную графическую версию : Установка "Адаптера Microsoft замыкания на себя"
Пытаюсь заставить сабж установиться в автоматичаском режиме... Спасибо добрым людям, подсказали комманду запуска мастера установки, но все равно не могу его победить. с помощию скрипта
BlockInput(1)
AutoItSetOption("TrayIconHide", 1)
Run ("rundll32 shell32, Control_RunDLL hdwwiz.cpl @1")
WinWait ("Мастер установки оборудования","", 0)
Sleep(500)
send("{ENTER}")
Sleep (8000)
ControlClick ("Мастер установки оборудования", "Это устройство уже подсоединено к компьютеру?", "Button1")
send("{ENTER}")
Sleep(500)
Send ("{down 50}")
send("{ENTER}")
Send ("{down}")
send("{ENTER}")
Send ("{down 30}")
Send ("{up 6}")
send("{ENTER}")
Sleep(500)
send("{ENTER}")
Sleep(100)
send("{ENTER}")
Sleep(1000)
send("{ENTER}")
BlockInput(0)
он у меня все таки устанавливается, но! Его еще надо настроить...
Можно воспользоваться коммандой netsh interface ip set address "Подключение по локальной сети 2" static 192.168.168.168 255.255.255.0, но для этого нужно знать, как будет называться подкличение (Подключение по локальной сети 2, 3, 4, и т.п.) Отсуда вопрос, как можно это определить (автоматически, ессно), можно ли это сделать Автоитом или как установить и настроить девайс автоматом по-другому???
ЗЫ Не сочтите за оффтопик, имхо, сей девайс скорее все же приложение :)
Через winnt.sif не подойдет? Вот кусок с Win2003 & VirtualServer 2005:
[GuiUnattended]
DetachedProgram="%systemroot%\system32\DevCon.exe install %systemroot%\inf\netloop.inf *msloop"
[Networking]
InstallDefaultComponents=No
[NetAdapters]
Adapter1=params.Adapter1
Adapter3=params.Adapter2
[params.MS_TCPIP]
AdapterSections=params.MS_TCPIP.Adapter1,params.MS_TCPIP.Adapter2
[params.Adapter1]
NetCardAddress=0x000123456789
ConnectionName="LAN"
[params.Adapter2]
InfID="*msloop"
ConnectionName="VLN"
[NetProtocols]
MS_TCPIP=params.MS_TCPIP
[params.MS_TCPIP.Adapter1]
SpecificTo=Adapter1
IPAddress=192.168.0.5
SubnetMask=255.255.255.0
[params.MS_TCPIP.Adapter2]
SpecificTo=Adapter2
IPAddress=192.168.1.5
SubnetMask=255.255.255.0
[NetClients]
MS_MSClient=params.MS_MSClient
[params.MS_MSClient]
[NetServices]
MS_Server=params.MS_Server
MS_RasSrv=params.MS_RasSrv
[params.MS_Server]
BroadcastsToLanman2Clients=No
[params.MS_RasSrv]
ParamsSection = params.MS_RAS
[params.MS_RAS]
RouterType = 2
Да, совсем забыл - утилиту DEVCON можно выдернуть из DDK. Интересно, что в Win2K для установки через winnt.sif достаточно одной секции params.Adapter, а вот в XP/2000 приходится изголяться... Как видно, установка LoopBack из командной строки:
DevCon.exe install %systemroot%\inf\netloop.inf *msloop
Я так понял, что winnt.sif - это файл автоматической установки Windows, а мне нужно установить на имеющуюся систему
Синтаксис одинаков - установить устройство с дефолтовыми настройками можно через DevCon, а настроить параметры через другие командные утилиты - например netsh: "netsh exec config.net", пример config.net:
# -----------------------------------------
# Настройка IP-интерфейсов
# -----------------------------------------
pushd interface ip
# Интерфейс настройки IP для "LAN"
set address name="VLN" source=static addr=192.168.0.157 mask=255.255.255.0
set address name="VLN" gateway=192.168.0.1 gwmetric=0
set dns name="VLN" source=static addr=192.168.0.103 register=PRIMARY
set wins name="VLN" source=static addr=192.168.0.103
popd
# Конец настройки интерфейса IP
P.S. Осталось решить проблему переименования сетевого соединения, чтобы передать его имя в netsh.
P.S. Осталось решить проблему переименования сетевого соединения, чтобы передать его имя в netsh.
Вот в этом-то как раз и проблема:( А мож неправильно объяснил, но с утановкой вопрос решился (хотя твой способ, имхо, лучше), с подстановкой параметров - оже ясно, а вот как узнать под каким именем создалось соединение и это имя подставить для изменения параметров ?! :(
Пример AutoIT скрипта, который переименовывает все LoopBack соединения в "VLNx":
$root="HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}"
$i=1
While 1
$key = RegEnumKey($root, $i)
If @error Then ExitLoop
$key = $root & "\" & $key & "\Connection"
$val = RegRead($key,"PnpInstanceID")
$dim = StringSplit ($val, "\")
If $dim[1]="ROOT" AND $dim[2]="NET" AND StringIsDigit($dim[3]) Then
$val = RegRead ($key,"Name")
RegWrite ($key,"Name","REG_SZ","VLN" & ($dim[3]+1))
EndIf
$i=$i+1
WEnd
ГЕНИАЛЬНО! С меня пиво, полюбому :biggrin:
Мои проблемы решены, большое спасибо
Почти все запихнул в один скрипт, правдв почему-то девкон из скрипта не работает, ну и бог с ним
RunWait ("DevCon install %systemroot%\inf\netloop.inf *msloop")
$root="HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}"
$i=1
While 1
$key = RegEnumKey($root, $i)
If @error Then ExitLoop
$key = $root & "\" & $key & "\Connection"
$val = RegRead($key,"PnpInstanceID")
$dim = StringSplit ($val, "\")
If $dim[1]="ROOT" AND $dim[2]="NET" AND StringIsDigit($dim[3]) Then
$val = RegRead ($key,"Name")
RegWrite ($key,"Name","REG_SZ","VLN" & ($dim[3]+1))
EndIf
$i=$i+1
WEnd
run ("netsh interface ip set address VLN static 192.168.1.1 255.255.255.0")
Почти все запихнул в один скрипт, правдв почему-то девкон из скрипта не работаетПопробуй так:
RunWait ("DevCon install " & @WindowsDir & "\inf\netloop.inf *msloop")
run ("netsh interface ip set address VLN static 192.168.1.1 255.255.255.0")
А почему "VLN"? Скрипт вроде переименовывает по порядку в VLN1, VLN2, ...
А по барабану :) Переименовывает действительно в 1, 2,3 и т.п., но т.к. мне нужно установить и использовать только 1, то можно и так
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.