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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка приложений (http://forum.oszone.net/forumdisplay.php?f=61)
-   -   Установка "Адаптера Microsoft замыкания на себя" (http://forum.oszone.net/showthread.php?t=61192)

W_W 15-02-2006 05:54 406663

Установка "Адаптера 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, и т.п.) Отсуда вопрос, как можно это определить (автоматически, ессно), можно ли это сделать Автоитом или как установить и настроить девайс автоматом по-другому???

ЗЫ Не сочтите за оффтопик, имхо, сей девайс скорее все же приложение :)

amel27 15-02-2006 15:12 406859

Через 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


amel27 16-02-2006 06:40 407086

Да, совсем забыл - утилиту DEVCON можно выдернуть из DDK. Интересно, что в Win2K для установки через winnt.sif достаточно одной секции params.Adapter, а вот в XP/2000 приходится изголяться... Как видно, установка LoopBack из командной строки:
Код:

DevCon.exe install %systemroot%\inf\netloop.inf *msloop

W_W 21-02-2006 03:10 408877

Я так понял, что winnt.sif - это файл автоматической установки Windows, а мне нужно установить на имеющуюся систему

amel27 21-02-2006 05:18 408898

Синтаксис одинаков - установить устройство с дефолтовыми настройками можно через 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.

W_W 22-02-2006 22:05 409745

Цитата:

P.S. Осталось решить проблему переименования сетевого соединения, чтобы передать его имя в netsh.
Вот в этом-то как раз и проблема:( А мож неправильно объяснил, но с утановкой вопрос решился (хотя твой способ, имхо, лучше), с подстановкой параметров - оже ясно, а вот как узнать под каким именем создалось соединение и это имя подставить для изменения параметров ?! :(

amel27 24-02-2006 03:41 410234

Пример 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


W_W 01-03-2006 04:14 412205

ГЕНИАЛЬНО! С меня пиво, полюбому :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")


amel27 01-03-2006 05:14 412210

Цитата:

Почти все запихнул в один скрипт, правдв почему-то девкон из скрипта не работает
Попробуй так:
Код:

RunWait ("DevCon install " & @WindowsDir & "\inf\netloop.inf *msloop")

amel27 01-03-2006 12:34 412350

Цитата:

run ("netsh interface ip set address VLN static 192.168.1.1 255.255.255.0")
А почему "VLN"? Скрипт вроде переименовывает по порядку в VLN1, VLN2, ...

W_W 02-03-2006 10:33 412767

А по барабану :) Переименовывает действительно в 1, 2,3 и т.п., но т.к. мне нужно установить и использовать только 1, то можно и так


Время: 20:47.

Время: 20:47.
© OSzone.net 2001-