![]() |
Установка одним нажатием
У меня есть:
1. Windows XP SP2 (автоустановка), после окончания установки вижу окошко, о том, что система ативирована. Требуется нажать кнопку "Ok", для закрытия его. (Для активации использовал команду из winnt.sif: [GuiRunOnce] Command0="REGSVR32 /U SHMEDIA.DLL /s" 2. Папка "Updates" (со всеми обновлениями до 03.02.2006 г. для Windows XP SP2) с автоустановкой типа файла start.cmd 3. Папка OFFICEPRO2003.RUS со всеми обновлениями к нему и с автоустановкой типа файла Office.cmd 4. Папка "Install" с приложениями, то же с автоустановкой при помощи файла RunOnceEx.cmd 5. Файл "twk-winupdatepatch.exe" (Делает возможным загрузку с WindowsUpdate обновления, обходя проверку) Хотелось как бы все это соединить, т.е. нужен файл, который выполнил это все с загрузки CD (скорее DVD), но проблема в следующем: 1. Убрать окошко "Об успешном активации" 2. Далее устанавливать обновления из папки "Updates" 3. Перезагрузка компьютера 4. Установка OFFICEPRO2003.RUS 5. Установка приложений из папки "Install" (кстати туда можно воткнуть Office) 6. Перезагрузка компьютера 7. Тихая работа патча "twk-winupdatepatch.exe" (он должен запустится из папки "system32" 8. Дальше - все. (Теперь вступает пользователь) Спасибо за помощь. |
e9990638
Все это можно сделать набором пакетных файлов и добавлением их по цепочке в реестр (RunOnce). http://forum.oszone.net/showpost.php...0&postcount=11 1. Не вижу смысла убивать, если у вас есть п. 3 2. Пакетный файл. В конце добавить ключи в RunOnce на исполнение установки офиса, приложений, добавления ключей в RunOnce, исполняемых после след. перезагрузки (туда войдут ваш патч и еще одна перезагрузка), а также команду на перезагрузку чтобы перейти к п.3 |
В принципе и так понятно, только для меня (новичку) незнаю сами коды в пакетном файле.
Например: как вызвать перезагрузку и чтоб программа пошла дальше. Далее как быть с этим: "В первую очередь уберите раздел [GuiRunOnce] из winnt.sif, т.к. RunOnceEx его полностью заменит. Можно, в приницпе, и скомбинировать оба метода, но поскольку они будут выполнены одновременно (при первом входе в систему), то возможны конфликты" Насколько я понимаю должно выглядеть вот так: [GuiRunOnce] Command0="REGSVR32 /U SHMEDIA.DLL /s" - какой нужен код чтоб не было окошка Command1="%cdrom%\I386\Updates\start.cmd" Command2="%cdrom%\Install\ПЕРЕЗАГРУЗКА.cmd" - не знаю как написать команду Command3="%cdrom%\Install\RunOnceEx.cmd" Command4="%cdrom%\Install\ПЕРЕЗАГРУЗКА.cmd" - не знаю как написать команду Command5="%systemdrive%\system32\twk-winupdatepatch.exe"- какой нужен код чтобы была тихая установка Правильно ли все выглядит? |
e9990638
О перезагрузке почитайте в прикрепленной теме "Маленькие хитрости" http://forum.oszone.net/showthread.php?t=58418 Там полно вариантов. Нет, вы не правильно поняли. Смотрите, у вас планируется две перезагрузки, после каждой из которых вы желаете выполнять некие действия. Значит перед каждой из них вам нужно внести в реестр ключи, на выполнение команд следующего этапа, которое пойдет после перезагрузки. Пример: Вы запускаете первый пакетный файл из GuiRunOnce Код:
[GuiRunOnce] Код:
@echo off Код:
@echo off |
Попробовал, насколько понял вас. У меня есть файл "reboot.cmd", в котором прописано:
@echo off REM Добавляем файл, устанавливающий приложения из папки Install set key=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce REG ADD %KEY% /V command0 /D "%systemdrive%\install\inst.cmd" /f shutdown.exe -r -f -t 5 -c "Don`t panic. The system will reboot in 5 seconds." exit Далее: файл "inst.cmd" в котором (для теста): cmdow @ /HID @echo off SET CDROM=%~d0 SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx REG ADD %KEY% /V TITLE /D "“бв**®ўЄ* ЇаЁ«®¦Ґ*Ё©" /f REG ADD %KEY%\001 /VE /D "TotalCommander-6.53" /f REG ADD %KEY%\001 /V 1 /D "%systemdrive%\install\Total.exe" /f REG ADD %KEY%\005 /VE /D "WinRar-3.50" /f REG ADD %KEY%\005 /V 1 /D "%systemdrive%\install\WinRAR.exe" /f REG ADD %KEY%\010 /VE /D "Download Master 4.5.3.971" /f REG ADD %KEY%\010 /V 1 /D "%systemdrive%\install\DM453971.exe" /f REG ADD %KEY%\015 /VE /D "Acrobat Reader-7.05" /f REG ADD %KEY%\015 /V 1 /D "%systemdrive%\install\Adobe705.exe" /f REG ADD %KEY%\020 /VE /D "Far-1.70 beta-5" /f REG ADD %KEY%\020 /V 1 /D "%systemdrive%\install\Far170b5.exe" /f REG ADD %KEY%\025 /VE /D "ЋЎ*®ў«Ґ*ЁҐ ॥бва*" /f REG ADD %KEY%\025 /V 1 /D "REGEDIT /S %systemdrive%\install\HKLM.reg" /f REG ADD %KEY%\030 /VE /D "DVDXPPACK" /f REG ADD %KEY%\030 /V 1 /D "%systemdrive%\install\DVDXPPACK.exe" /f REG ADD %KEY%\035 /VE /D "ЏҐаҐ§*Јаг§Є*" /f REG ADD %KEY%\035 /V 1 /D "%systemdrive%\install\reboot1.cmd" /f EXIT Абракадабра - это кириллица написанная в DOS кодировке (чтобы отображалось по русски) Следующий файл: "reboot1.cmd", в котором: @echo off REM Добавляем файл, устанавливающий patch set key=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce REG ADD %KEY% /V command0 /D "%systemdrive%\system32\twkwin.exe" /f shutdown.exe -r -f -t 5 -c "Don`t panic. The system will reboot in 5 seconds." EXIT Для проверки запустил "reboot.cmd", происходит перезагрузка и на этом все. Вторичный запуск запускает "inst.cmd", который работает как прописано, но после перезагрузки, файл, прописанный в "reboot1.cmd" не запускается. (т.е. он сам по себе запускается) Что я сделал не так? |
e9990638
Уже правильно поняли :) Только, используйте тег code, плиз. Цитата:
Цитата:
Цитата:
|
Спасибо, за ответ, но все-таки:
1. Почему "reboot.cmd" надо запустить второй раз, чтобы пошел процесс "inst.cmd"? 2. Почему надо прописать в "reboot.cmd" (set key=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce), а в "inst.cmd" прописано (SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx) По поводу "reboot1.cmd", т.е. файл "twkwin.exe" запустив сам по-себе из папки /system32/, (он не в "тихом" режиме), он выдает окошко о запросе "сделать патч?", а через пакетный файл, такого нет. Потому я и думаю процес "reboot1.cmd" проходит не корректно. Не все сразу познал, по поводу "тег code" Спасибо за разъяснения. |
Ситуация все более проясняется.
Файлы "reboot.cmd" и "reboot1.cmd" почему-то надо запускать дважды, чтобы получить что хотел, что уже не так. Экспиремент: 1 Файл "reboot.cmd" надо запустить второй раз, чтобы пошел процесс "inst.cmd". По окончании срабатывает команда прописанная в "reboot1.cmd" (не понятно?), но тут же происходит перезагрузка и команда (которая должна выполнится после нее, далее не выполняется) - не работает. Экспиремент: 2 Запускаем "inst.cmd", процесс - нормальный, далее запускается "reboot1.cmd" (т. е. происходит перезагрузка), команда, прописанная в "reboot1.cmd" не выполняется. Перезагружаю компьютер сам, команда выполняется. Почему надо дважды перзагружать компьютер? (тем более самому во второй раз) |
e9990638
Давайте сначала :) Я только что протестировал свой вариант на виртуалке и он сработал. В моем варианте есть три файла installX.cmd, используемые для импорта ключей реестра и вызова файлов установки программ launchX.cmd, в конце которого в свою очередь дается команда на перезагрузку. Для простоты эксперимента у меня был всего один файл launch.cmd, который пинговал localhost. Вы, конечно, можете сделать три таких файла, изменив файлы installX.cmd соответственно. install1.cmd Код:
@echo off Код:
@echo off Код:
@echo off Код:
@echo off Безусловно, в файле install2.cmd можно вместо install3.cmd сразу импортировать в реестр команду на вызов launch3.cmd. Протестировать можно запуском install1.cmd, который в сучае успеха надо прописать в [GuiRunOnce]. P.S. По поводу HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce vs. HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce. Команды импортированные в HKLM выполнятся для пользователя, который следующим войдет в систему, причем неважно кто это будет. Команды импортированные в HKCU выполнятся только для пользователя, из под учетной записи которого они были импортированы. Также, Команды импортированные в HKCU из cmdlines.txt, выполнятся для всех пользователей в системе, включая созданных впоследствии. P.P.S. По поводу RunOnce vs. RunOnceEx. Там разный синтаксис, RunOnceEx обладает неким интерфейсом, для отображения прогресса установки. См. статьи на сайте. Вышеуказанный метод вполне можно адаптировать под RunOnceEx, но этим вы займитесь уже самостоятельно. |
Время: 22:22. |
Время: 22:22.
© OSzone.net 2001-