frig 2 Опубліковано: 2007-01-30 16:29:22 Share Опубліковано: 2007-01-30 16:29:22 СУПЕР!!! Ты ведь поделишся этим инсталом ,хотя бы что б посмотреть его в работе? Вообще было б классно исходник ,что б каждый админ мог под свою сетку подправить настройки (если ты конечно согласишся выложить ...) . э.... а где проблема сомому сделать? возьмите любой инсталлятор и наваяйте на нем. по-моему с таким справится любой инсталлятор... еще книженцию по реестру виндовому и в путь! Ссылка на сообщение Поделиться на других сайтах
p0int 0 Опубліковано: 2007-01-31 01:04:49 Share Опубліковано: 2007-01-31 01:04:49 реестр не обязательно можно много сделать через netsh довольно продвинутая штука под винды например добавить авторизатор в списко разрешенных для брендмауера Ссылка на сообщение Поделиться на других сайтах
KLN.NET 0 Опубліковано: 2007-01-31 09:31:14 Share Опубліковано: 2007-01-31 09:31:14 Довно жду такой задумки. Времени не хвататет тоже осуществить такое. На ХАБЕ видел аналог для создания подключений, прога платная. цену не помню. В принципе за программу такого типа и назначения готов наверно бы заплатить не космические деньги. Я думаю есть смысл кто шарит взятся за это дело, думаю труд ваш оценять. Если потестить надо, то всегда за. На большом количестве абонентов? ЗА! Ссылка на сообщение Поделиться на других сайтах
frig 2 Опубліковано: 2007-01-31 13:27:24 Share Опубліковано: 2007-01-31 13:27:24 да сам не успеваю ничего. почитал мануальчик по инсталлятору... все можно сделать. вопрос только в том, что должно быть в пакете. сильно раздувать его тоже неохота, а потом доставлять софт для сети тоже юзерам напряг. я вот думаю как раздуплюсь, я СЕБЕ сделаю что-бы при переустановки винды (уж забыл когда такое было... ) сразу скопом ставить все что нужно, а не сидеть и не парить мозги. Ссылка на сообщение Поделиться на других сайтах
KLN.NET 0 Опубліковано: 2007-01-31 13:48:03 Share Опубліковано: 2007-01-31 13:48:03 frig Так выделил "СЕБЕ"... Жадина чтоли? )))) Де мануальчик читал, дай линк, может я созрею на сиё чудо )) Ссылка на сообщение Поделиться на других сайтах
frig 2 Опубліковано: 2007-01-31 14:05:38 Share Опубліковано: 2007-01-31 14:05:38 Так выделил "СЕБЕ"... Жадина чтоли? )))) не ну ясное дело! ) просто набор устанавливаемого софта довольно личная штука. это если просто на машину. да и юзерам в сети тоже. http://www.google.com.ua/search?hl=ru&q=ns...B2+Google&meta= вот те линк а вообще хоршо-бы не самому это делать. Hamil как я знаю сам проггер так что можете его дружно просить. он справиться ) Ссылка на сообщение Поделиться на других сайтах
.com 1 Опубліковано: 2007-01-31 18:56:27 Автор Share Опубліковано: 2007-01-31 18:56:27 Ну собственно по теме :С масками ,шлюзами , днс всё в порядке - работает , а вот REM Прописываем сетевую группу... net localgroup GROUPBUH /add REM Прописываем описание сетевой группы... net localgroup GROUPBUH /comment:"Бухгалтерия" REM Прописываем пользователя в группу... net localgroup GROUPBUH VASYA /add Трабла ,везде пишет команда выполнена успешно. Перезагружаюсь , смотрю группа прежняя. Запускаю повторно , пишет группа существует, хотя в сетевом её даж нету. PS Что то не замечал где нах-ся описание рабочей группы и что означает прописать пользователя в рабочую группу :bue: Так никто не знает почему рабочая группа не меняется? Ссылка на сообщение Поделиться на других сайтах
p0int 0 Опубліковано: 2007-01-31 19:17:47 Share Опубліковано: 2007-01-31 19:17:47 могут перекрывать политики домена если таковой имееться Ссылка на сообщение Поделиться на других сайтах
.com 1 Опубліковано: 2007-01-31 21:27:58 Автор Share Опубліковано: 2007-01-31 21:27:58 могут перекрывать политики домена если таковой имееться нету Ссылка на сообщение Поделиться на других сайтах
Chika 0 Опубліковано: 2007-01-31 22:47:52 Share Опубліковано: 2007-01-31 22:47:52 REM IP i maska... netsh interface ip set address name="Simnet" source=static addr=10.7.23.25 mask=255.255.0.0 REM Shluz... netsh interface ip set address name="Simnet" gateway=10.7.0.128 gwmetric=0 REM DNS1... netsh interface ip set dns name="Simnet" source=static addr=10.7.0.254 register=PRIMARY REM DNS2... netsh interface ip set dns name="Simnet" source=static addr=192.168.0.1 register=2 REM WINS... netsh interface ip set wins name="Simnet" source=static addr=10.7.0.128 REM Finish... Вот такой батник есть. Но ни как не выходит сделать, чтоб заполнялась графа Альтернативный DNS-сервер. :tongue: Подскажите плз := Ссылка на сообщение Поделиться на других сайтах
p0int 0 Опубліковано: 2007-02-01 00:29:36 Share Опубліковано: 2007-02-01 00:29:36 знаю сам такое юзаю попробуй через запятую второй вписать может прокатит Ссылка на сообщение Поделиться на других сайтах
gall 6 Опубліковано: 2007-02-01 08:34:17 Share Опубліковано: 2007-02-01 08:34:17 Интересная тема. Вот только батником решить все настройки невозможно. Поэтому, пришлось почитать про VBScript, и вот что вышло в итоге. Скопировать, вставить где надо свои значения и сохранить с расширением .vbs. Может есть программер который сможет на базе этого слепить екзешник будет вообще супер. ' Настройка параметров TCP/IP для работы в сети ' Windows Server 2003 : Yes ' Windows XP : Yes ' Windows 2000 : Yes ' Windows NT 4.0 : Yes ' Windows 98 : Yes '================================================ ' Прописываем ИП, маску сети, шлюз strComputer = "." Dim ip Dim home Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") ip = inputbox ("Введите последнюю цифру Вашего IP адреса (192.168.1.хх)") strIPAddress = Array("192.168.1."& (ip)) strSubnetMask = Array("255.255.255.0") strGateway = Array("192.168.1.222") strGatewayMetric = Array(1) For Each objNetAdapter in colNetAdapters errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask) errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric) If errEnable = 0 Then msgbox ("Ваш IP изменен на: 192.168.1."&ip) Else WScript.Echo "Ошибка. Введен непопустимый символ" End If Next '================================================ 'Прописываем ДНС On Error Resume Next arrNewDNSServerSearchOrder = Array("192.168.1.14", "192.168.1.222") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNicConfigs = objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True") For Each objNicConfig In colNicConfigs If Not IsNull(objNicConfig.DNSServerSearchOrder) Then For Each strDNSServer In objNicConfig.DNSServerSearchOrder Next End If intSetDNSServers = objNicConfig.SetDNSServerSearchOrder(arrNewDNSServerSearchOrder) Next Set colNicConfigs = objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True") For Each objNicConfig In colNicConfigs If Not IsNull(objNicConfig.DNSServerSearchOrder) Then For Each strDNSServer In objNicConfig.DNSServerSearchOrder Next End If Next '================================================ ' Вгоняем комп в рабочую группу (названия групп = номеру дома) On Error Resume Next Const JOIN_DOMAIN = 0 home = inputbox ("Введите номер дома") strDomainName = (home) Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colCompSystems = objWMIService.ExecQuery ("SELECT * FROM Win32_ComputerSystem") For Each objCompSystem In colCompSystems intJoinDomain = objCompSystem.JoinDomainOrWorkgroup(strDomainName,,,, JOIN_DOMAIN) Next Set colCompSystems = objWMIService.ExecQuery ("SELECT * FROM Win32_ComputerSystem") For Each objCompSystem In colCompSystems Next '=============================================== 'Пишем юзеру сообщение, что все сделано Dim objShell, intValue Set objShell = CreateObject("WScript.Shell") intValue = objShell.Popup("Компьтер был добавлен в рабочую группу -" & strDomainName & "." & vbCRLF & "Для продолжения работы необходимо перезагрузить компьтер.", , , vbExclamation + vbOKOnly) '=============================================== 'Ребутим комп, чтобы активировать рабочую группу Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Shutdown)}!\\" & strComputer & "\root\cimv2") Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem") For Each objOperatingSystem in colOperatingSystems ObjOperatingSystem.Reboot() Next P.S: Рабочие группы у меня по номерам домов, ну а вы можете варьировать как вам надо. Удачи. Ссылка на сообщение Поделиться на других сайтах
Profi the same 1 Опубліковано: 2007-02-01 10:42:39 Share Опубліковано: 2007-02-01 10:42:39 тот же батник, который ссылается на .vbs Ссылка на сообщение Поделиться на других сайтах
.com 1 Опубліковано: 2007-02-01 14:40:50 Автор Share Опубліковано: 2007-02-01 14:40:50 тот же батник, который ссылается на .vbs bat умеет выполнять .vbs ?? Ссылка на сообщение Поделиться на других сайтах
.com 1 Опубліковано: 2007-02-01 17:21:45 Автор Share Опубліковано: 2007-02-01 17:21:45 Интересная тема.Вот только батником решить все настройки невозможно. Поэтому, пришлось почитать про VBScript, и вот что вышло в итоге. Скопировать, вставить где надо свои значения и сохранить с расширением .vbs. Может есть программер который сможет на базе этого слепить екзешник будет вообще супер. ' Настройка параметров TCP/IP для работы в сети ' Windows Server 2003 : Yes ' Windows XP : Yes ' Windows 2000 : Yes ' Windows NT 4.0 : Yes ' Windows 98 : Yes '================================================ ' Прописываем ИП, маску сети, шлюз strComputer = "." Dim ip Dim home Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") ip = inputbox ("Введите последнюю цифру Вашего IP адреса (192.168.1.хх)") strIPAddress = Array("192.168.1."& (ip)) strSubnetMask = Array("255.255.255.0") strGateway = Array("192.168.1.222") strGatewayMetric = Array(1) For Each objNetAdapter in colNetAdapters errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask) errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric) If errEnable = 0 Then msgbox ("Ваш IP изменен на: 192.168.1."&ip) Else WScript.Echo "Ошибка. Введен непопустимый символ" End If Next '================================================ 'Прописываем ДНС On Error Resume Next arrNewDNSServerSearchOrder = Array("192.168.1.14", "192.168.1.222") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNicConfigs = objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True") For Each objNicConfig In colNicConfigs If Not IsNull(objNicConfig.DNSServerSearchOrder) Then For Each strDNSServer In objNicConfig.DNSServerSearchOrder Next End If intSetDNSServers = objNicConfig.SetDNSServerSearchOrder(arrNewDNSServerSearchOrder) Next Set colNicConfigs = objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True") For Each objNicConfig In colNicConfigs If Not IsNull(objNicConfig.DNSServerSearchOrder) Then For Each strDNSServer In objNicConfig.DNSServerSearchOrder Next End If Next '================================================ ' Вгоняем комп в рабочую группу (названия групп = номеру дома) On Error Resume Next Const JOIN_DOMAIN = 0 home = inputbox ("Введите номер дома") strDomainName = (home) Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colCompSystems = objWMIService.ExecQuery ("SELECT * FROM Win32_ComputerSystem") For Each objCompSystem In colCompSystems intJoinDomain = objCompSystem.JoinDomainOrWorkgroup(strDomainName,,,, JOIN_DOMAIN) Next Set colCompSystems = objWMIService.ExecQuery ("SELECT * FROM Win32_ComputerSystem") For Each objCompSystem In colCompSystems Next '=============================================== 'Пишем юзеру сообщение, что все сделано Dim objShell, intValue Set objShell = CreateObject("WScript.Shell") intValue = objShell.Popup("Компьтер был добавлен в рабочую группу -" & strDomainName & "." & vbCRLF & "Для продолжения работы необходимо перезагрузить компьтер.", , , vbExclamation + vbOKOnly) '=============================================== 'Ребутим комп, чтобы активировать рабочую группу Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Shutdown)}!\\" & strComputer & "\root\cimv2") Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem") For Each objOperatingSystem in colOperatingSystems ObjOperatingSystem.Reboot() Next P.S: Рабочие группы у меня по номерам домов, ну а вы можете варьировать как вам надо. Удачи. Супер, вот только одно. У нас сейчас некий гемор с айпихами , тобиш по каждую кв выделяем спец айпиху ,которую юзер просто не запоминает ,а после переустановки винды только спохватывается. .. Вобщем нужно вклинить туда сопоставленные квартиры - айпи и через после ввода № своей квартиры юзверю забивался бы айпи . Вот правил кусочек ,но не работает. Подскажите как правильно. ip = inputbox ("Введите № вашей квартиры") ip=kv If kv=("2") Then ip=("133") If kv=("4") Then ip=("139") If kv=("8") Then ip=("114") Else WScript.Echo "Ошибка. Извините,вашей квартиры нет в базе" End If Ссылка на сообщение Поделиться на других сайтах
gall 6 Опубліковано: 2007-02-01 17:55:07 Share Опубліковано: 2007-02-01 17:55:07 вот только одно. У нас сейчас некий гемор с айпихами , тобиш по каждую кв выделяем спец айпиху ,которую юзер просто не запоминает ,а после переустановки винды только спохватывается. .. Вобщем нужно вклинить туда сопоставленные квартиры - айпи и через после ввода № своей квартиры юзверю забивался бы айпи . Вот правил кусочек ,но не работает. Подскажите как правильно. ip = inputbox ("Введите № вашей квартиры") ip=kv If kv=("2") Then ip=("133") If kv=("4") Then ip=("139") If kv=("8") Then ip=("114") Else WScript.Echo "Ошибка. Извините,вашей квартиры нет в базе" End If Попробуй так.. Вроде работает strComputer = "." Dim ip Dim home Dim kv Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") kv = inputbox ("Ввести номер кв") If kv = ("10") Then ip = ("12") ElseIf kv = ("11") Then ip = ("9") ElseIf kv = ("12") Then ip = ("8") Else WScript.Echo "Ошибка" End If Возможно и не самое лучшее решение. Ссылка на сообщение Поделиться на других сайтах
frig 2 Опубліковано: 2007-02-01 18:47:14 Share Опубліковано: 2007-02-01 18:47:14 ребята, да чего вы паритесь? простейший инсталлятор (NSIS я ща почитываю... просто как 2 байта...) умеет и писать в реестр и выполнять любые проги и командную строку и все что угодно. что еще нужно? нормальный привычный человечный интерфейс, возможность все это дело бесконечно расширять-наращивать-улучшать и это далеко не все чем так вкуен полноценный инсталлятор. Ссылка на сообщение Поделиться на других сайтах
.com 1 Опубліковано: 2007-02-08 21:55:32 Автор Share Опубліковано: 2007-02-08 21:55:32 Интересная тема.Вот только батником решить все настройки невозможно. Поэтому, пришлось почитать про VBScript, и вот что вышло в итоге. Скопировать, вставить где надо свои значения и сохранить с расширением .vbs. Может есть программер который сможет на базе этого слепить екзешник будет вообще супер. ' Настройка параметров TCP/IP для работы в сети ' Windows Server 2003 : Yes ' Windows XP : Yes ' Windows 2000 : Yes ' Windows NT 4.0 : Yes ' Windows 98 : Yes '================================================ ' Прописываем ИП, маску сети, шлюз strComputer = "." Dim ip Dim home Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") ip = inputbox ("Введите последнюю цифру Вашего IP адреса (192.168.1.хх)") strIPAddress = Array("192.168.1."& (ip)) strSubnetMask = Array("255.255.255.0") strGateway = Array("192.168.1.222") strGatewayMetric = Array(1) For Each objNetAdapter in colNetAdapters errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask) errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric) If errEnable = 0 Then msgbox ("Ваш IP изменен на: 192.168.1."&ip) Else WScript.Echo "Ошибка. Введен непопустимый символ" End If Next '================================================ 'Прописываем ДНС On Error Resume Next arrNewDNSServerSearchOrder = Array("192.168.1.14", "192.168.1.222") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNicConfigs = objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True") For Each objNicConfig In colNicConfigs If Not IsNull(objNicConfig.DNSServerSearchOrder) Then For Each strDNSServer In objNicConfig.DNSServerSearchOrder Next End If intSetDNSServers = objNicConfig.SetDNSServerSearchOrder(arrNewDNSServerSearchOrder) Next Set colNicConfigs = objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True") For Each objNicConfig In colNicConfigs If Not IsNull(objNicConfig.DNSServerSearchOrder) Then For Each strDNSServer In objNicConfig.DNSServerSearchOrder Next End If Next '================================================ ' Вгоняем комп в рабочую группу (названия групп = номеру дома) On Error Resume Next Const JOIN_DOMAIN = 0 home = inputbox ("Введите номер дома") strDomainName = (home) Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colCompSystems = objWMIService.ExecQuery ("SELECT * FROM Win32_ComputerSystem") For Each objCompSystem In colCompSystems intJoinDomain = objCompSystem.JoinDomainOrWorkgroup(strDomainName,,,, JOIN_DOMAIN) Next Set colCompSystems = objWMIService.ExecQuery ("SELECT * FROM Win32_ComputerSystem") For Each objCompSystem In colCompSystems Next '=============================================== 'Пишем юзеру сообщение, что все сделано Dim objShell, intValue Set objShell = CreateObject("WScript.Shell") intValue = objShell.Popup("Компьтер был добавлен в рабочую группу -" & strDomainName & "." & vbCRLF & "Для продолжения работы необходимо перезагрузить компьтер.", , , vbExclamation + vbOKOnly) '=============================================== 'Ребутим комп, чтобы активировать рабочую группу Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Shutdown)}!\\" & strComputer & "\root\cimv2") Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem") For Each objOperatingSystem in colOperatingSystems ObjOperatingSystem.Reboot() Next P.S: Рабочие группы у меня по номерам домов, ну а вы можете варьировать как вам надо. Удачи. Вылезла трабла у бзверей с несколькими сетевыми картами. Настройки забиваются в каждую из карточек , из-за чего не могут корректно работать протоколы (не доступно ...). Качать из сетки можно ,а чаты и др. не работают. Кто может подсказать какое решение? Ссылка на сообщение Поделиться на других сайтах
.com 1 Опубліковано: 2007-02-08 21:58:01 Автор Share Опубліковано: 2007-02-08 21:58:01 ребята, да чего вы паритесь? простейший инсталлятор (NSIS я ща почитываю... просто как 2 байта...) умеет и писать в реестр и выполнять любые проги и командную строку и все что угодно. что еще нужно? нормальный привычный человечный интерфейс, возможность все это дело бесконечно расширять-наращивать-улучшать и это далеко не все чем так вкуен полноценный инсталлятор. Если уже прошарился что к чему отпишись поподробнее плыз ,желательно с примером этого NSIS... Ссылка на сообщение Поделиться на других сайтах
frig 2 Опубліковано: 2007-02-08 22:16:53 Share Опубліковано: 2007-02-08 22:16:53 ой на примеры времени нету, а так все просто. складываешь файлики, пишешь что в реестр записать, и ваяешь скриптик. там все просто. что куда распаковать, какие варианты установки , что ставить, ну и там примочки типа языков и другого. потом делаешь секцию анинсталла, что-бы это дело могло корректно удалиться, и в принципе все. еще есть возможность рисовать свои страницы с полями ввода и остальным. потом это дело можно повпихивать в файлы настройки какой-либо лабуды, которая держит настройки в фалах а не в реестре.... в общем просто нужно немного времени. Ссылка на сообщение Поделиться на других сайтах
.com 1 Опубліковано: 2007-02-08 22:29:15 Автор Share Опубліковано: 2007-02-08 22:29:15 ой на примеры времени нету, а так все просто. складываешь файлики, пишешь что в реестр записать, и ваяешь скриптик. там все просто. что куда распаковать, какие варианты установки , что ставить, ну и там примочки типа языков и другого. потом делаешь секцию анинсталла, что-бы это дело могло корректно удалиться, и в принципе все. еще есть возможность рисовать свои страницы с полями ввода и остальным. потом это дело можно повпихивать в файлы настройки какой-либо лабуды, которая держит настройки в фалах а не в реестре.... в общем просто нужно немного времени. Теперь понял что имелось ввиду... Сенкс Трабла с настройкой всех (вместо 1го) сетевых интефейсов ещё актульна ... ( Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2007-02-09 06:19:53 Share Опубліковано: 2007-02-09 06:19:53 2frig: Ну наваяй) Советовать все могут. Пока скрипт, выкинутый gall, является самым лучшим советом в этой теме. Ссылка на сообщение Поделиться на других сайтах
Флэшмобер 5 Опубліковано: 2007-02-09 07:27:04 Share Опубліковано: 2007-02-09 07:27:04 одно время пытался написать такое на Делфи, загвоздка стала в том что не смог определить имена ВСЕХ интерфейсов на машине... если кто подскажет как это определить, выдам на гора софт автонастроечный вместе с исходниками... Ссылка на сообщение Поделиться на других сайтах
frig 2 Опубліковано: 2007-02-09 07:42:31 Share Опубліковано: 2007-02-09 07:42:31 да рано или поздно прийдется, сей час совсем нет времени. сначала нужно определиться с функционалом и включенным софтом Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2007-02-18 12:28:59 Share Опубліковано: 2007-02-18 12:28:59 Взял за основу скрипт gall и немножко переделал. Получился скрипт на perl #!/usr/bin/perl ($cgi_script) = ($0 =~ m:(.*)[/\\](.*)[1]; $ip = $ENV{'REMOTE_ADDR'}; $url = 'http://' . $ENV{'HTTP_HOST'} . $ENV{'REQUEST_URI'}; $debug = 0; $addr{'192.168.0.0/24'} = 'one'; $addr{'55.22.207.66'} = 'two'; $addr{'55.22.200.19'} = 'three'; $settings{one}[0] = $ip; $settings{one}[1] = '255.255.255.0'; $settings{one}[2] = '192.168.0.129'; $settings{one}[3] = '172.16.2.126'; $settings{two}[0] = ''; $settings{two}[1] = '255.255.255.0'; $settings{two}[2] = '192.168.4.129'; $settings{two}[3] = '192.168.4.129'; $settings{three}[0] = ''; $settings{three}[1] = '255.255.255.0'; $settings{three}[2] = '192.168.3.129'; $settings{three}[3] = '192.168.3.129'; $settings{amn}[0] = ''; $settings{amn}[1] = '255.255.255.0'; $settings{amn}[2] = '194.58.162.129'; $settings{amn}[3] = '194.58.162.129'; if($ENV{'REQUEST_METHOD'} eq 'POST') {read STDIN, $query, $ENV{'CONTENT_LENGTH'};} else {$query = $ENV{'QUERY_STRING'};} if($query eq '') { foreach $net (keys %addr) { ($op, $mask) = split/\//, $net; $mask = 32 if ($mask eq ''); $pop = unpack "L", pack "C4", split /\./, $op; $pip = unpack "L", pack "C4", split /\./, $ip; $pmask = unpack "L", pack "B32", (1 x $mask); if (($pip & $pmask) == ($pop & $pmask)) { $now = $addr{$net}; last; } } print "Content-type: text/html\n\n"; print qq~ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=cp1251"> <META HTTP-EQUIV="Pragma" CONTENT="No-Cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="No-Cache,Must-Revalidate,No-Store"> <META HTTP-EQUIV="Expires" CONTENT="-1"> <title>Автоматическая настройка подключения</title> <script> function checkform() { if(settings.ip.value=="") { alert("Введите IP-адрес") return false; } if(settings.mask.value=="") { alert("Введите маску подсети") return false; } if(settings.gate.value=="") { alert("Введите основной шлюз") return false; } if(settings.dns.value=="") { alert("Введите Предпочитаемый DNS-сервер") return false; } return true; } </script> </head> <body bgcolor="#6696bc"> <center> <h2>Создание файла автоматической настройки подключения к локальной сети</h2> <h3>Внимание: файл настройки будет сохранять те значения, которые вы укажете сейчас.<br>Поэтому, пожалуйста, заполняйте поля внимательно.<br>Файл настройки работает для Windows NT/9x/XP/2000/2003.</h3> <FORM name="settings" ACTION="$cgi_script" METHOD="POST" onsubmit="return checkform()"> <table border="0" cellspacing="0" cellpadding="5" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <tr><td align=right>IP-адрес: <td><INPUT name="ip" type=text size=15 maxlength=15 value="$settings{$now}[0]"></td></tr> <tr><td align=right>Маска подсети: <td><INPUT name="mask" type=text size=15 maxlength=15 value="$settings{$now}[1]"></td></tr> <tr><td align=right>Основной шлюз: <td><INPUT name="gate" type=text size=15 maxlength=15 value="$settings{$now}[2]"></td></tr> <tr><td align=right>Предпочитаемый DNS-сервер: <td><INPUT name="dns" type=text size=15 maxlength=15 value="$settings{$now}[3]"></td></tr> <tr><td align=right><INPUT type=reset value="по умолчанию"> <td><input type=submit value=' скачать '></td></tr> </table> </FORM> <a href="$cgi_script">обновить</a></center></font><br></body></html> ~; } else { @pairs = split(/&/, $query); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $name =~ s/<([^>]|\n)*>//g; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/<([^>]|\n)*>//g; $p{$name} = $value; } $filename = "settings $p{ip}.vbs"; $file = qq~ Option Explicit On Error Resume Next Dim objWMIService Dim objNetAdapter Dim strComputer Dim strGateway Dim strGatewayMetric Dim strAddress Dim strIPAddress Dim strSubnetMask Dim colNetAdapters Dim errEnable Dim errGateways Dim objShell Dim intValue Dim Button Dim arrNewDNSServerSearchOrder Dim colNicConfigs Dim objNicConfig Dim strDNSServer Dim intSetDNSServers Dim strMask Dim strGate Dim strDns strComputer = "." strAddress = ("$p{ip}") strMask = ("$p{mask}") strGate = ("$p{gate}") strDns = ("$p{dns}") strIPAddress = Array(strAddress) strSubnetMask = Array(strMask) strGateway = Array(strGate) strGatewayMetric = Array(1) arrNewDNSServerSearchOrder = Array(strDns) Button = MsgBox ("Сейчас вам будет предложено применить настройки к каждой сетевой карте из имеющихся в системе." & vbCRLF & _ "Нажмите ''Ok'' для той сетевой карты, которую нужно настроить." & vbCRLF & _ "Для остальных карточек нажимайте ''Нет''." & vbCRLF & _ "Нажмите ''Отмена'', если хотите выйти." & vbCRLF & _ "Перед тем, как нажать кнопку ''Ok'' убедитесь, что подключение к локальной сети включено и сетевой кабель вставлен в сетевую карту." & vbCRLF & _ "Без этих условий настройки не сохранятся." & vbCRLF & vbCRLF & _ "Применяемые настройки: " & vbCRLF & _ "IP: " & strAddress & vbCRLF & _ "Маска: " & strMask & vbCRLF & _ "Шлюз: " & strGate & vbCRLF & _ "DNS: " & strDns & vbCRLF, vbOKOnly + vbInformation, "Настройка подключения") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\\\" & strComputer & "\\root\\cimv2") Set colNetAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled = TRUE") for Each objNetAdapter in colNetAdapters Button = MsgBox ("Сетевая карта: " & vbCRLF & objNetAdapter.Caption & vbCRLF & vbCRLF & _ "Сохранять настройки для неё?" & vbCRLF & _ "Ок - сохранение настроек, Нет - нет, Отмена - выход", vbYesNoCancel + vbQuestion, "Сохранение настроек") If Button = vbYes Then errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask) errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric) intSetDNSServers = objNetAdapter.SetDNSServerSearchOrder(arrNewDNSServerSearchOrder) If errEnable = 0 Then Button = MsgBox ("IP изменен на: " & strAddress & vbCRLF & _ "Маска изменена на: " & strMask & vbCRLF & _ "Шлюз изменен на: " & strGate & vbCRLF & _ "DNS изменен на: " & strDns & vbCRLF & vbCRLF & "Для сетевой карты: " & vbCRLF & objNetAdapter.Caption, _ vbOKOnly + vbInformation, "Сохранение настроек") Else Button = MsgBox ("Ошибка. Некорректные настройки, скачайте файл настройки заново." & vbCRLF & _ "Файл настройки можно скачать по адресу:" & vbCRLF & _ "$url", vbOKOnly + vbCritical, "Ошибка настройки") End If End If if Button = vbCancel Then WScript.Quit End if Next WScript.Quit ~; print "Content-type: application/vbs\r\nContent-disposition: attachment; filename=\"$filename\"\r\n\r\n"; @a = split /\n/, $file; $, = "\r\n"; foreach $b (@a) { chomp $b; chomp $b; print "$b\r\n"; } } Который, будучи скормленным веб серверу, будет выдавать страничку. На страничке можно написать ип, маску, шлюз, днс и нажать кнопку "скачать". Кроме того, скрипт пытается по ИП адресу зашедшего на страничку определить и подставить его параметры. У меня они описаны в начале скрипта. Но так же можно указывать любые параметры. В результате нажатия кнопки "скачать" на ваш компьютер сохранится vbs файл с этими настройками. Файл будет примерно такой: Option Explicit On Error Resume Next Dim objWMIService Dim objNetAdapter Dim strComputer Dim strGateway Dim strGatewayMetric Dim strAddress Dim strIPAddress Dim strSubnetMask Dim colNetAdapters Dim errEnable Dim errGateways Dim objShell Dim intValue Dim Button Dim arrNewDNSServerSearchOrder Dim colNicConfigs Dim objNicConfig Dim strDNSServer Dim intSetDNSServers Dim strMask Dim strGate Dim strDns strComputer = "." strAddress = ("192.168.0.5") strMask = ("255.255.255.0") strGate = ("192.168.0.129") strDns = ("172.16.2.126") strIPAddress = Array(strAddress) strSubnetMask = Array(strMask) strGateway = Array(strGate) strGatewayMetric = Array(1) arrNewDNSServerSearchOrder = Array(strDns) Button = MsgBox ("Сейчас вам будет предложено применить настройки к каждой сетевой карте из имеющихся в системе." & vbCRLF & _ "Нажмите ''Ok'' для той сетевой карты, которую нужно настроить." & vbCRLF & _ "Для остальных карточек нажимайте ''Нет''." & vbCRLF & _ "Нажмите ''Отмена'', если хотите выйти." & vbCRLF & _ "Перед тем, как нажать кнопку ''Ok'' убедитесь, что подключение к локальной сети включено и сетевой кабель вставлен в сетевую карту." & vbCRLF & _ "Без этих условий настройки не сохранятся." & vbCRLF & vbCRLF & _ "Применяемые настройки: " & vbCRLF & _ "IP: " & strAddress & vbCRLF & _ "Маска: " & strMask & vbCRLF & _ "Шлюз: " & strGate & vbCRLF & _ "DNS: " & strDns & vbCRLF, vbOKOnly + vbInformation, "Настройка подключения") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled = TRUE") for Each objNetAdapter in colNetAdapters Button = MsgBox ("Сетевая карта: " & vbCRLF & objNetAdapter.Caption & vbCRLF & vbCRLF & _ "Сохранять настройки для неё?" & vbCRLF & _ "Ок - сохранение настроек, Нет - нет, Отмена - выход", vbYesNoCancel + vbQuestion, "Сохранение настроек") If Button = vbYes Then errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask) errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric) intSetDNSServers = objNetAdapter.SetDNSServerSearchOrder(arrNewDNSServerSearchOrder) If errEnable = 0 Then Button = MsgBox ("IP изменен на: " & strAddress & vbCRLF & _ "Маска изменена на: " & strMask & vbCRLF & _ "Шлюз изменен на: " & strGate & vbCRLF & _ "DNS изменен на: " & strDns & vbCRLF & vbCRLF & "Для сетевой карты: " & vbCRLF & objNetAdapter.Caption, _ vbOKOnly + vbInformation, "Сохранение настроек") Else Button = MsgBox ("Ошибка. Некорректные настройки, скачайте файл настройки заново." & vbCRLF & _ "Файл настройки можно скачать по адресу:" & vbCRLF & _ "http://elizovo.ru/cgi-bin/settings.cgi", vbOKOnly + vbCritical, "Ошибка настройки") End If End If if Button = vbCancel Then WScript.Quit End if Next WScript.Quit Файл выдает различные информационные сообщения. И что самое главное, при переборе сетевых адаптеров каждый раз спрашивает, применять ли настройки. Таким образом можно явно указать, для какой сетевухи сохранять параметры. У меня в сети используется один DNS сервер, поэтому и подставляется один. Но для двух серверов файл переписать нетрудно. 2Флэшмобер: Имена всех интерфейсов не нужны. Нужны только те, у которых есть TCP/IP прооткол. Как я понял из доков, это легко делается через WMI. Вот пример кода, реализующего это: Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled = TRUE") И потом перебирая адаптеры из colNetAdapters.... ) Опытным путем было установлено, что такой запрос показывает только включенные адаптеры. И ещё просьба - если будете делать инсталлятор, оставьте место для программ типа inetaccess или wintray. Получится первосортная программа типа "Установка интернета на компьютер". Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас