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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   Установка одним нажатием (http://forum.oszone.net/showthread.php?t=60613)

e9990638 04-02-2006 23:27 402604

Установка одним нажатием
 
У меня есть:
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. Дальше - все. (Теперь вступает пользователь)
Спасибо за помощь.

Vadikan 05-02-2006 01:09 403338

e9990638
Все это можно сделать набором пакетных файлов и добавлением их по цепочке в реестр (RunOnce). http://forum.oszone.net/showpost.php...0&postcount=11

1. Не вижу смысла убивать, если у вас есть п. 3
2. Пакетный файл. В конце добавить ключи в RunOnce на исполнение установки офиса, приложений, добавления ключей в RunOnce, исполняемых после след. перезагрузки (туда войдут ваш патч и еще одна перезагрузка), а также команду на перезагрузку чтобы перейти к п.3

e9990638 05-02-2006 01:44 403346

В принципе и так понятно, только для меня (новичку) незнаю сами коды в пакетном файле.

Например: как вызвать перезагрузку и чтоб программа пошла дальше.

Далее как быть с этим: "В первую очередь уберите раздел [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"- какой нужен код чтобы была тихая установка

Правильно ли все выглядит?

Vadikan 05-02-2006 02:08 403348

e9990638
О перезагрузке почитайте в прикрепленной теме "Маленькие хитрости" http://forum.oszone.net/showthread.php?t=58418 Там полно вариантов.

Нет, вы не правильно поняли. Смотрите, у вас планируется две перезагрузки, после каждой из которых вы желаете выполнять некие действия. Значит перед каждой из них вам нужно внести в реестр ключи, на выполнение команд следующего этапа, которое пойдет после перезагрузки. Пример:
Вы запускаете первый пакетный файл из GuiRunOnce
Код:

[GuiRunOnce]
 Command0="REGSVR32 /U SHMEDIA.DLL /s" - какой нужен код чтоб не было окошка
Command1="%cdrom%\I386\Updates\start.cmd"
Command2="%cdrom%\Install\reboot.cmd"

Забудьте про окошко, вы все равно перезагружаете компьютер. При этом reboot.cmd у вас примерно такой:
Код:

@echo off

REM Добавляем файл, устанавливающий Office и приложения из папки Install
set key=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce
REG ADD %KEY% /V command0 /D "%systemdrive%\install\install_apps.cmd" /f

shutdown.exe -r -f -t 5 -c "Don`t panic. The system will reboot in 5 seconds."

exit

Т.е. после перезагрузки установится офис и софт из install_apps.cmd, в котором в свою очередь вам тоже надо прописать импорт ключей и перезагрузку. Например

Код:

@echo off
REM Ставим Офис
start /wait "%systemdrive%\install\Applications\Office2003\PRO11.msi /qb"
REM Ставим софт
start /wait "%systemdrive%\install\Applications\setup.exe /s"


REM Добавляем файл, устанавливающий patch
set key=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce
REG ADD %KEY% /V command0 /D "%systemdrive%\install\install_patch.cmd" /f

shutdown.exe -r -f -t 5 -c "Don`t panic. The system will reboot in 5 seconds."

exit


e9990638 05-02-2006 04:05 403361

Попробовал, насколько понял вас. У меня есть файл "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" не

запускается. (т.е. он сам по себе запускается)

Что я сделал не так?

Vadikan 05-02-2006 05:14 403364

e9990638
Уже правильно поняли :) Только, используйте тег code, плиз.
Цитата:

Для проверки запустил "reboot.cmd", происходит перезагрузка и на этом все.
Ну а там собственно больше ничего и нет. Вы можете вставить команду pause перед строкой shutdown, и пойти посмотреть в реестр - произошел импорт ключей или нет. Очевидно, он происходит, раз вы говорите
Цитата:

Вторичный запуск запускает "inst.cmd", который работает как прописано
A вот дальше я не совсем понял
Цитата:

но после перезагрузки, файл, прописанный в "reboot1.cmd" не запускается. (т.е. он сам по себе запускается)
Как это понимать? Вы можете протестировать свой reboot1, также как вы тестировали reboot. Вы всегда можете вставить Pause перед shutdown, и проверить произошел ли импорт в реестр.

e9990638 05-02-2006 12:18 403408

Спасибо, за ответ, но все-таки:
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"
Спасибо за разъяснения.

e9990638 05-02-2006 13:46 403429

Ситуация все более проясняется.
Файлы "reboot.cmd" и "reboot1.cmd" почему-то надо запускать дважды, чтобы получить что хотел, что уже не так.
Экспиремент: 1
Файл "reboot.cmd" надо запустить второй раз, чтобы пошел процесс "inst.cmd".
По окончании срабатывает команда прописанная в "reboot1.cmd" (не понятно?), но тут же происходит перезагрузка
и команда (которая должна выполнится после нее, далее не выполняется) - не работает.

Экспиремент: 2
Запускаем "inst.cmd", процесс - нормальный, далее запускается "reboot1.cmd" (т. е. происходит перезагрузка), команда,
прописанная в "reboot1.cmd" не выполняется.
Перезагружаю компьютер сам, команда выполняется.

Почему надо дважды перзагружать компьютер? (тем более самому во второй раз)

Vadikan 05-02-2006 22:46 403566

e9990638
Давайте сначала :) Я только что протестировал свой вариант на виртуалке и он сработал. В моем варианте есть три файла installX.cmd, используемые для импорта ключей реестра и вызова файлов установки программ launchX.cmd, в конце которого в свою очередь дается команда на перезагрузку. Для простоты эксперимента у меня был всего один файл launch.cmd, который пинговал localhost. Вы, конечно, можете сделать три таких файла, изменив файлы installX.cmd соответственно.

install1.cmd
Код:

@echo off

REM Добавляем файл, выполняющий команды после первой перезагрузки (второй набор комманд)
set key=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce
REG ADD %KEY% /V command0 /D "%systemdrive%\install\install2.cmd" /f

REM Выполняем первый набор команд
CALL "%systemdrive%\install\launch.cmd"

exit

install2.cmd
Код:

@echo off

REM Добавляем файл, выполняющий команды после второй перезагрузки (третий набор комманд)
set key=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce
REG ADD %KEY% /V command0 /D "%systemdrive%\install\install3.cmd" /f

REM Выполняем второй набор команд
CALL "%systemdrive%\install\launch.cmd"

exit

install3.cmd
Код:

@echo off

REM Выполняем третий набор команд
CALL "%systemdrive%\install\launch.cmd"

exit

launch.cmd
Код:

@echo off
REM Команды на запуск приложений
ping localhost >> %systemdrive%\install\output.txt"

REM Перезагрузка
shutdown.exe -r -f -t 5 -c "Don`t panic. The system will reboot in 5 seconds."

exit

После всех перезагрузок у меня появился файл output.txt, в котором отчетливо видно, что команда ping отработала три раза.

Безусловно, в файле 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-