|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » Только для экспертов! FAKE-Setup своими руками. |
|
|
Только для экспертов! FAKE-Setup своими руками.
|
Googler Сообщения: 3665 |
Профиль | Отправить PM | Цитировать Только для экспертов! FAKE-Setup своими руками.
Метод использования Fake-копии SETUP.EXE был придуман неким Pyron с форума MSFN и нынче широко используется для Unattend-пакетов, в основном драйверов (пакеты от Bashrat, BoaSoft и др.). Подробней о том как он фунциклирует можно почитать в мануалах к пакетам и на форумах MSFN. Несмотря на простой алгоритм, для написания EXE-файла нужно быть немного программером, а это ИМХО не совсем справедливо! . Поэтому я решил реализовать его на AutoIT, но здесь ждал облом - AutoIT v.3 напрочь отказывался запускаться в PRE-Setup окружении WinXP, хотя между тем прекрасно работал из под Win2K. К счастью, все заработало на версии 2.64, которая до сих пор доступна для скачивания. Привожу пример скрипта, где совмещены обе возможности - AutoIT и PreSetup чтобы всегда можно было выбрать удобный интерфейс. Код намеренно не тестировался и может содержать ошибки - кому нужно, тот поймет что к чему. Многое зависит еще от содержимого Presetup.Cmd HideAutoItWin,On SetBatchLines,100 ;======================================================= ; Восстанавливаем параметры командной строки ;------------------------------------------------------- SetEnv,i,0 Repeat,%0% EnvAdd,i,1 StringTrimLeft,parm,%i%,0 SetEnv,CmdLine,%CmdLine% %parm% EndRepeat ;======================================================= ; Установка путей к утилитам и драйверам ;------------------------------------------------------- SetEnv,DrvTag,drv51 SetEnv,WrkDir,%SystemDrive%\\Install ;======================================================= ; Установка всех требуемых файлов ;------------------------------------------------------- FileInstall,setupORG.exe,%SystemRoot%\\System32\\setupORG.exe FileInstall,presetup.cmd,%WrkDir%\\presetup.cmd FileInstall,cmdow.exe,%WrkDir%\\cmdow.exe FileInstall,7za.exe,%WrkDir%\\7za.exe FileInstall,setpath.exe,%WrkDir%\\setpath.exe FileInstall,watchdrv.exe,%WrkDir%\\watchdrv.exe ;======================================================= ; Трикс с переименованием ;------------------------------------------------------- IfExist,%SystemRoot%\\System32\\Setup.exe,RunWait,CMD /C REN Setup.exe SetupOld.exe,%SystemRoot%\\System32,Hide IfExist,%SystemRoot%\\System32\\SetupORG.exe,RunWait,CMD /C REN SetupORG.exe Setup.exe,%SystemRoot%\\System32,Hide ;======================================================= ; Собственно запуск процесса установки ;------------------------------------------------------- SetBatchLines,1 ;------------------------------------------------------- RunWait,CMD /C PreSetup.cmd %DrvTag% %WrkDir%,%WrkDir%\\,Hide RunWait,Setup.exe %CmdLine%,%SystemRoot%\\System32 ;======================================================= ; Чистим после себя ;------------------------------------------------------- RunWait,CMD /C RD /Q /S %WrkDir%,%SystemDrive%\\,Hide 1. Свобода от правки inf-файлов, все инструменты включены уже в один файл - SETUP.EXE, который устанавливается простым копированием. 2. Свобода выбора между WATCHDRV и стандартным AutoIT-методом отслеживания окон, тем более что WATCHDRV отрабатывает не всегда. 3. Возможность условного заполнения реквизитов. Например, загрузив из INI-файла базу всех ПК можно автоматически заполнить имя машины, лицензионный ключ и т.д. Сам не пробЫвал - нужды пока не было. |
|
Отправлено: 12:45, 07-04-2006 |
Пользователь Сообщения: 125
|
Профиль | Отправить PM | Цитировать amel27
Объясни, плз, идею FAKE-Setup. Без этого невозможно понять суть своего предложения. |
Отправлено: 10:41, 15-04-2006 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать bogomolv
Ok, осознал. Подправил скрипт - перегнал две строчки из PRESETUP.CMD чтобы смысл был ясен. Идея проста - оригинальный SETUP.EXE переименовывается в дистрибутиве в SETUPORG а вместо него подкладывают FAKE-копию, которая и запускается установщиком. FAKE-setup выполняет необходимые действия (обычно лишь запускает PRESETUP.CMD), переименовывает все обратно и, наконец, запускает оригинальный SETUP.EXE. Важно, чтобы FAKE-setup не завершал работу в течении всего процесса установки, иначе произойдет прерывание и перезагрузка. |
Отправлено: 06:22, 16-04-2006 | #3 |
(*.*) Сообщения: 36527
|
Профиль | Сайт | Отправить PM | Цитировать bogomolv
В старой версии статьи об установке драйверов с CD этот способ излагался. Он еще есть в старой оффлайн версии, наверное. И на MSFN он есть на англ. |
------- Отправлено: 07:21, 16-04-2006 | #4 |
Пользователь Сообщения: 125
|
Профиль | Отправить PM | Цитировать amel27, Vadikan
Спасибо, понял о чем речь. Но вопросы к amel27 остались: Из твоего скрипта не видно, зачем тебе "свобода выбора между WATCHDRV и стандартным AutoIT-методом отслеживания окон", и где и как ты собираешься юзать "возможность условного заполнения реквизитов"? А вообще-то метод заинтересовал с точки зрения возможности реализации одного трюка, которым давно пользуюсь, но делаю это коряво: Одним из стандартных приемов установки Windows является выделение на диске раздела под систему с последующим автоматическим переформатированием этого раздела в ходе переустановки системы. Так красиво и элегантно избавляемся от мусора и возможности воспроизведения кривых настроек прежней системы. К тому же в ходе автопереустановки не появляется нарушающий unattend'ность запрос, что делать со старой папкой Windows. Способ всем хорош, но его условие - наличие свободного раздела. Не все это любят, а неподготовленные пользователи к тому же не умеют им пользоваться, и бесполезно им объяснять, что не надо сохранять свои документы на диске C:! Я для автоудаления прежней системы использую такую конструкцию: 1. На винчестер кладу заточненный под пользователя дистрибутив со всеми дровами и всеми дополнительными программами (что-то вроде дистрибутива на скрытом разделе ноутбуков Asus). 2. Разворачиваю на диске WinPE (в собственной облегченной сборке). 3. Запуск переустановки системы осуществляется файлом UNATTEND.BAT, который из-под Windows меняет BOOT.INI, создает маркерный файл и отправляет систему на перезагрузку под WinPE: 4. Загрузившаяся WinPE "реагирует" на наличие c:\delwin.bat и запускает: del %DISK%:\delwin.bat rd /s /q %DISK%:\windows rd /s /q %DISK%:\docume~1 rd /s /q %DISK%:\progra~1 rd /s /q %DISK%:\system~1 rd /s /q %DISK%:\recycled rd /s /q %DISK%:\RECYCLER @dir %DISK%:\ @%DISTR%: @cd %DISTR% .\I386\winnt32.exe /s:.\I386 /unattend1:unattend.txt /noreboot exit В принципе, я и свою конструкцию неплохо отточил: перезагрузка и запуск установки из-под WinPE занимают у меня не более 50 сек, нарисовал скрипты автоматизации процесса развертывания WinPE на жестком диске, та же самая WinPE на установочном мультизагрузочном CD служит для подготовки жесткого диска на новом компьютере, а на самом жестком диске WinPE в качестве дополнительной оси неплохо помогает восстановить рухнувшую систему. Удается даже руководить этими процессами по телефону, подсказывая детям своих друзей и знакомых, что и как нужно сделать, чтобы ОНО опять заработало |
|
Отправлено: 07:41, 17-04-2006 | #5 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать bogomolv
Цитата:
2. Это только "мысли вслух"... Как вариант - дождаться окна ввода реквизитов, затем идентифицировать к-либо способом машину (MAC-адрес, BIOS или еще как... тут нужно обмозговать), по этому индексу вытянуть из INI-файла нужную инфу и вставить куда надо. З.Ы. В AutoIT меня не устраивает только привязка к языку, а собирать титлы окон для всех языков (у меня их три) и систем (тоже три) не очень хочется... |
|
Отправлено: 12:11, 17-04-2006 | #6 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать bogomolv
Цитата:
1. Запустить под Windows первую фазу установки (только копирование): В результате будут созданы временные каталоги C:\$WIN_NT$.~BT и C:\$WIN_NT$.~LS, а также BOOT.INI типа: [Boot Loader] Default=C:\$WIN_NT$.~BT\BOOTSECT.DAT [Operating Systems] C:\$WIN_NT$.~BT\BOOTSECT.DAT="Microsoft Windows XP Professional Setup" 3. Проверить содержимое winnt.sif в $WIN_NT$.~BT на предмет строчек: 4. Заменить в $WIN_NT$.~LS SETUP.EXE на Fake-копию, которая перед установкой сделает RD всем каталогам WINDOWS.* (кроме %WINDIR%), ну и дальше по списку... 5. Сваять скрипт, который при запуске копирует коталоги $WIN_NT$.* и BOOT.INI в корень диска C: и перегружает машину, после чего сразу стартует графическая часть Unattend-установки. З.Ы. Одно "неудобство" - папка %WINDIR% после каждой переустановки будет называться по другому. |
|
Отправлено: 07:23, 18-04-2006 | #7 |
Пользователь Сообщения: 125
|
Профиль | Отправить PM | Цитировать amel27
Спасибо, буду думать. На первый взгляд - еще более тяжеловесная конструкция... |
Отправлено: 09:08, 18-04-2006 | #8 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать bogomolv
Цитата:
|
|
Отправлено: 11:13, 18-04-2006 | #9 |
Пользователь Сообщения: 125
|
Профиль | Отправить PM | Цитировать amel27
Цитата:
Так и не понял, что представляют собой эти временные каталоги? Насколько они универсальны, и можно ли их использовать для установки на разных машинах? Не является ли этот метод чем-то вроде Sysprep-установки, рекомендуемой для однотипных машин... Подробности уже подзабыл, но осталась уверенность, что этот метод не для моего подхода, когда я из стандартного дистрибутива и заготовок драйверов и программ общего назначения готовлю дистрибутив, заточенный под конкретного пользователя и его машину (или группу машин). |
|
Отправлено: 06:57, 19-04-2006 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Комп своими руками | ddfwefwefweq | Выбор отдельных компонентов компьютера и конфигурации в целом | 2 | 04-03-2009 19:50 | |
Proxy/NAT - Внешний прокси своими руками | Donner | Хочу все знать | 5 | 29-12-2008 02:16 | |
ФТП своими руками... | Ronald | Microsoft Windows 2000/XP | 7 | 10-01-2007 13:35 | |
Загрузочный CD своими руками | Kenobi | Хочу все знать | 1 | 09-10-2005 11:21 | |
TTimer своими руками | Zur0 | Программирование и базы данных | 5 | 27-04-2003 18:17 |
|