Войти

Показать полную графическую версию : [решено] Совмещение нескольких вариантов установки Windows... Частично работает choice.bat


SharkyEXE
12-11-2009, 09:39
Здравствуйте. Прошу прощения, что создал новую тему на форуме, в принципе, аналогичной этой (http://forum.oszone.net/post-1267997.html#post1267997), но автор этой (http://forum.oszone.net/post-1267997.html#post1267997) темы отметил ее решенной (для меня отметка его темы решенной-под вопросом), и поэтому, туда вроде как и никто не зайдет :). В общем следующая проблема:

Из статьи здесь (http://oszone.net/2986/), начиная с пункта RunOnceEx до Создание мультизагрузочного диска с помощью Bootable CD Wizard (BCDW), что сделал я (остальное содержимое этой (http://oszone.net/2986/) статьи мне не нужно):

1. В файл winnt.sib ответа добавил следующее:
[GuiUnattended]
DetachedProgram="%systemdrive%\Pustyshki\dummy2.exe"

Содержимоего моего файла ответов winnt.sib полностью:
;SetupMgrTag
[Data]
Autopartition=0
MsDosInitiated="0"
UnattendedInstall="Yes"
AutomaticUpdates=Yes

[Unattended]
UnattendMode=FullUnattended
OemSkipEulA=Yes
OemPreinstall=Yes
TargetPath=\WINDOWS
Repartition=No
FileSystem=*
Unattendswitch="Yes"
WaitForReboot="No"

[GuiUnattended]
AdminPassword=12345
EncryptedAdminPassword=No
OEMSkipRegional=1
TimeZone=145
OemSkipWelcome=1
DetachedProgram="%systemdrive%\Pustyshki\dummy2.exe"

[Display]
BitsPerPel=32
XResolution=1024
YResolution=768
Vrefresh=60

[RegionalSettings]
LanguageGroup=1,2,3,4,5
SystemLocale=00000419
UserLocale=00000419
InputLocale=0409:00000409,0419:00000419

[Identification]
JoinWorkgroup=WORKGROUP

[Networking]
InstallDefaultComponents=Yes

[UserData]
FullName="Admin"
OrgName="Super-Puper"
ProductKey=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
ComputerName=*

Это все работает.

2. Создал 3 файла-пустышки с нулевым размером: dummy1.fle, dummy2.fle, dummy3.fle. Упаковал каждый по отдельности в отдельный sfx архив, каждый sfx архив содержит следующий комментарий:
;Расположенный ниже комментарий содержит команды SFX-сценария

Path=%systemdrive%\Pustyshki\
Silent=1
Overwrite=1

Получилось 3 sfx архива: DUMMY1.EXE, DUMMY2.EXE, DUMMY3.EXE.

Это все работает.

3. Создал файл через AkelPad cmdlines.txt с содержимым:
[COMMANDS]
"choice.bat"

положил cmdlines.txt в корень папки $OEM$.

Это все работает.

4. Создал через AkelPad файл choice.bat с содержимым:
@echo off

if exist %systemdrive%\Pustyshki\dummy1.fle goto START1
if exist %systemdrive%\Pustyshki\dummy2.fle goto START2
if exist %systemdrive%\Pustyshki\dummy3.fle goto START3
....
goto END

:START1
RD /S /Q %systemdrive%\qeqe
GOTO END

:START2
start /wait %systemdrive%\useraccounts.bat
start /wait %systemdrive%\Tweaks_for_hklm.bat
start /wait %systemdrive%\Tweaks_for_hkcu.bat
start /wait %systemdrive%\Delete_cmdow.bat
GOTO END

:START3
RD /S /Q %systemdrive%\xaxa
GOTO END
....

:END

положил choice.bat в корень папки $OEM$.

Этот choice.bat работает частично. (подробности ниже)

5. Директория $ОЕМ$ в моем случае выглядит так:

Содержимое папки D:\Svoj_distributiv_Windows\$OEM$

09.11.2009 15:30 <DIR> .
09.11.2009 15:30 <DIR> ..
09.11.2009 15:30 <DIR> $$
11.11.2009 19:00 <DIR> $1
11.11.2009 19:06 515 choice.bat
09.11.2009 14:28 24 cmdlines.txt
2 файлов 539 байт

Содержимое папки D:\Svoj_distributiv_Windows\$OEM$\$$

09.11.2009 15:30 <DIR> .
09.11.2009 15:30 <DIR> ..
09.11.2009 22:58 <DIR> system32
0 файлов 0 байт

Содержимое папки D:\Svoj_distributiv_Windows\$OEM$\$$\system32

09.11.2009 22:58 <DIR> .
09.11.2009 22:58 <DIR> ..
19.12.2004 11:32 31 232 cmdow.exe
21.12.1999 06:58 80 384 cusrmgr.exe
31.12.2002 14:00 28 672 renuser.exe
3 файлов 140 288 байт

Содержимое папки D:\Svoj_distributiv_Windows\$OEM$\$1

11.11.2009 19:00 <DIR> .
11.11.2009 19:00 <DIR> ..
09.11.2009 19:49 66 Delete_cmdow.bat
09.11.2009 17:51 2 990 hkcu.reg
07.11.2009 18:37 4 761 hklm.reg
09.11.2009 15:01 <DIR> Pustyshki
09.11.2009 17:46 106 Tweaks_for_hkcu.bat
09.11.2009 17:46 106 Tweaks_for_hklm.bat
09.11.2009 23:23 582 useraccounts.bat
6 файлов 8 611 байт

Содержимое папки D:\Svoj_distributiv_Windows\$OEM$\$1\Pustyshki

09.11.2009 15:01 <DIR> .
09.11.2009 15:01 <DIR> ..
09.11.2009 15:00 96 437 dummy1.exe
09.11.2009 15:00 99 509 dummy2.exe
09.11.2009 15:01 101 557 dummy3.exe
09.11.2009 14:59 117 Текстовый документ.txt
4 файлов 297 620 байт

6. Папку D:\Svoj_distributiv_Windows\$OEM$\ со всем ее содержимым полностью скопировал в корень папки моего будущего образа (папка будущего моего образа D:\XPCD, папка D:\Svoj_distributiv_Windows\$OEM$\ лежит в корне папки D:\XPCD, т. е. так: D:\XPCD\$OEM$\).

Это все работает.

Моя проблема: как написал в конце пункта 4., файл choice.bat работает частично. Т. е. из всего этого:
start /wait %systemdrive%\useraccounts.bat
start /wait %systemdrive%\Tweaks_for_hklm.bat
start /wait %systemdrive%\Tweaks_for_hkcu.bat
start /wait %systemdrive%\Delete_cmdow.bat

у меня отрабатывает только файл:
%systemdrive%\useraccounts.bat

остальное содержимое секции :START2 файла choice.bat (что должно отработать тоже):
start /wait %systemdrive%\Tweaks_for_hklm.bat
start /wait %systemdrive%\Tweaks_for_hkcu.bat
start /wait %systemdrive%\Delete_cmdow.bat

не рабтает.

Что сделать, чтобы содержимое секции :START2 файла choice.bat отрабатывало полностью, а не только одна строка:
%systemdrive%\useraccounts.bat

? Спасибо.

stasys44
12-11-2009, 10:35
Чтоб начался следующий этап, текущий этап должен сойти со "сцены" - для этого ключ wait, возможно процесс формально не закончен. Подозреваю вы командного окна не видите из-за cmdow и считаете этап законченным, а на самом деле выхода нет

Habetdin
12-11-2009, 10:35
SharkyEXE, у вас в конце файла %systemdrive%\useraccounts.bat стоит команда "exit"? :)

SharkyEXE
13-11-2009, 08:14
SharkyEXE, у вас в конце файла %systemdrive%\useraccounts.bat стоит команда "exit"? »
Команды exit нет во всех 4х батниках. Буду пробовать с командой exit во всех 4х батниках.

SharkyEXE
13-11-2009, 16:08
Кому интересно, у меня проблема исчезла.
1) Спасибо за подсказку Habetdin - у (http://forum.oszone.net/member.php?userid=150730) ((его подсказка) (http://forum.oszone.net/post-1268225-3.html)
2) Спасибо tralkz - у (http://forum.oszone.net/thread-131950.html), его шапке этой (http://forum.oszone.net/thread-131950.html) темы на форуме. Не поняв, что такое
call .\useraccounts1.cmd

через Пуск-Выполнить-Ввел cmd, жмакнул OK, набрал к командной строке call /? и понял, что у него идет вызов батника из батника. Собственно, тоже самое, что пытался добиться я. В общем, спасибо всем, кто помог мне решить мою проблемку. Всем спасибо, тема отмечена решенной. :good:
1. Рабочий в моем случае на все 99, 9% файл choice.bat
@echo off

if exist %systemdrive%\Pustyshki\dummy1.fle goto START1
if exist %systemdrive%\Pustyshki\dummy2.fle goto START2
if exist %systemdrive%\Pustyshki\dummy3.fle goto START3
....
goto END

:START1
RD /S /Q %systemdrive%\qeqe
GOTO END

:START2
call %systemdrive%\useraccounts.bat
call %systemdrive%\Tweaks_for_hklm.bat
call %systemdrive%\Tweaks_for_hkcu.bat
call %systemdrive%\Delete_cmdow.bat
GOTO END

:START3
RD /S /Q %systemdrive%\xaxa
GOTO END
....

:END

2. Рабочие на все 99, 9% файлы-батники, которые я использовал. Каждый файл-батник также отрабатывает на все 99, 9%, выполняя все то, что он должен выполнять.
Содержимое файла useraccounts.bat:
@echo off
net user Vadikan asdf1234 /add
net localgroup Администраторы Vadikan /add
net localgroup Пользователи Vadikan /delete
cusrmgr -u Vadikan +s PasswordNeverExpires
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V DefaultUserName /t REG_SZ /D "Vadikan" /f
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V DefaultPassword /t REG_SZ /D asdf1234 /f
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V AutoAdminLogon /t REG_SZ /D 1 /f
del /f /q %systemroot%\system32\cusrmgr.exe
del /f /q %0
exit

Содержимое файла Tweaks_for_hklm.bat:
@echo off
REGEDIT /S %systemdrive%\hklm.reg
del /f /q %systemdrive%\hklm.reg
del /f /q %0
exit

Содержимое файла Tweaks_for_hkcu.bat:
@echo off
REGEDIT /S %systemdrive%\hkcu.reg
del /f /q %systemdrive%\hkcu.reg
del /f /q %0
exit

Содержимое файла Delete_cmdow.bat:
@echo off
del /f /q %systemroot%\system32\cmdow.exe
del /f /q %0
exit

Ну вот, собственно и все. Надеюсь, что эта моя тема на форуме станет кому-то также полезна. :good:




© OSzone.net 2001-2012