PDA

Показать полную графическую версию : [статья] SetupComplete.cmd


Страниц : 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

blakman
06-09-2011, 23:49
Тоже самое что и у DonQuixote - инсталляторы не запускаются. Что самое непонятное, все работало, пока я не увлекся заменой логон-скрина и установкой тем по умолчанию. В какой-то момент обнаружил что программы из SetupComplete.cmd не устанавливаются. Причем логон-скрин так и не удалось заменить. Откатывался назад - к исходному дистрибутиву - не помогает.

SetupComplete.cmd такой
start /wait %DiskRoot%\Install\dotNet_for_Win7_SP1_x86_x64.exe -aipLku
start /wait %DiskRoot%\Install\Flash.exe
start /wait regedit /s hklm.reg
Переменная DiskRoot задается в Autounattend.xml описанным здесь способом (поиск фйла DiskRoot.txt)
Также запускается файл install.cmd вызываемый в секции FirstLogonCommands файла Autounattend.xml.
start /wait %DiskRoot%\Install\HashTab.exe -y -gm2 -fm0
start /wait %DiskRoot%\Install\WinRAR41.exe -y -gm2 -fm0 -!
Как видно, оба они используют переменную DiskRoot, но install.cmd отрабатывает отлично, а SetupComplete.cmd - не устанавливает програмы как будто его нет вообще.
Вставка FOR %%i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %%i:\diskroot.txt SETX DiskRoot %%i: -m ни к чему не приводит.
Кроме того, импорт файлов реестра(находящихся в одной с SetupComplete.cmd папке) также не происходит.
Из чего я делаю вывод что папка $OEM$\$$\SETUP\SCRIPTS либо не копируется, либо удаляется до ООВЕ-стадии.
Кстати, когда все работало, этап "проверки видео" длился долго. Сейчас на нем установка почти не задерживается.
Файл Autounattend.xml почти ничего не содержит, SkipUserOOBE=false SkipMachineOOBE=true - на это ругается WSIM говоря что они deprecated. В остальном - все ОК.
Попытки положить папку SCRIPTS сразу в install.wim к желаемому результату не привели.
Что проверять и где смотреть - не представляю. Помогите, люди добрые!

Devils0411
08-09-2011, 15:43
Собсна проблемка... Запускаю runonceex.cmd из setupComplete.cmd таким образом:

cmd /c runonceex.cmd

Как и указано в статье (http://www.oszone.net/8610)
окошко с запущенным runonceex.cmd не выскакивает.
Пробовал и так:

Call runonceex.cmd

Результат такое же как и указано выше.
А вот если запустить вот так:

Start /wait runonceex.cmd

То окошко выскакивает, но после не закрывается. Приходится окно закрывать вручную или прописать EXIT

Lennyvets
08-09-2011, 18:36
Приходится окно закрывать вручную или прописать EXIT »
start /w cmd /c runonceex.cmd

Devils0411
08-09-2011, 18:54
Lennyvets, О такой комбинации не задумывался... Завтра опробую - отпишусь.

blakman
10-09-2011, 21:48
Тоже самое что и у DonQuixote - инсталляторы не запускаются. »
Отвечаю на свой вопрос:
Игнор файла SetupComplete.cmd был мнимый - файл честно принимается к исполнению, но содержит 2 ошибки, устранение которых привело к решению проблемы:

1. Несмотря на то, что в Autounattend.xml прописан скрипт присвоения переменной DiskRoot имени диска с файлами, в SetupComplete.cmd эта переменная не видна.
Почему - я так и не понял? Если кто-нибудь знает - напишите! Как я уже говорил в предыдущем посте, до поры-до времени эта переменная была видна.

В общем, проблема решилась копированием строчки FOR %%i IN (C D..... из Autounattend.xml в обсуждаемый пакетный файл.

2. Команда start /wait regedit /s hklm.reg в таком виде не находила *.reg - файл. По моей логике, файл должен быть "виден", т.к. находится в одной папке с SetupComplete.cmd.
Оказалось не так. Regedit "увидел" файл, как только был указан абсолютный путь к нему:
start /wait regedit /s %systemroot%\setup\scripts\hklm.reg

opel431
26-09-2011, 20:33
Оказалось не так. Regedit "увидел" файл, как только был указан абсолютный путь к нему: »
А так:

start /wait regedit /s "%~dp0hklm.reg"

Проблем при этом не наблюдал.

geepnozeex
27-09-2011, 21:14
у меня всегда без указания пути работает
start /wait regedit /s %DiskRoot%\copy.reg (строка из setupcomplete.cmd)

файл DiskRoot.txt в корне установочного диска вместе с файлом copy.reg .

строки из AutoUnattend.xml
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>cmd /c &quot;FOR %i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %i:\DiskRoot.txt SETX DiskRoot %i: -m&quot;</Path>
</RunSynchronousCommand>
</RunSynchronous>

blakman - ты вроде как забыл про файл DiskRoot.txt или я ошибаюсь ?

sov44
26-12-2011, 16:37
В ручную запись добавляется в реестр, а с помощью SetupComplete.cmd не получается. Подскажите, в чём может быть проблема?

@echo off
Reg Add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v "BSPI" /t REG_SZ /d "%systemDrive%\BS\Presetup1.exe" /f

geepnozeex
30-12-2011, 19:27
в корень диска текстовик кидаешь?

Core-2
30-12-2011, 20:52
в корень диска текстовик кидаешь? »
Это как? Тоже интересно.

sov44
31-12-2011, 14:10
Спасибо, разобрался. Действительно, нужно было поправить файл ответов на предмет поиска маркерного файла в корне диска. Система не знала переменной %DiskRoot% :)

Reg Add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v "BSPI" /t REG_SZ /d "%DiskRoot%\BS\Presetup1.exe" /f

Leon_K
24-01-2012, 15:44
sov44,
Не могли бы вы по-конретней указать что подправить в AutoUnattend.xml чтобы файлик SetupComplete.cmd подхватывался? Формат .xml для меня лес тёмный, а WSIM, к сожалению, слишком "неудобоварим" для понимания таких тонкостей... По крайней мере, "сходу" :).

Vadikan
24-01-2012, 16:17
Не могли бы вы по-конретней указать что подправить в AutoUnattend.xml чтобы файлик SetupComplete.cmd подхватывался? »
Он просто указал путь к нему синхронной командой. См. Создание переменной среды, соответствующей букве установочного диска (http://www.oszone.net/8602)

Leon_K
25-01-2012, 09:30
Он просто указал путь к нему синхронной командой. См. Создание переменной среды, соответствующей букве установочного диска »
Это я читал. Но дело в том, что в моём случае мне не нужно создавать переменные среды (к тому же, по-моему, весьма "кривоватеньким" методом): я использую SetupComplete только для того, чтобы запустить Complete.vbs, а уже Complete.vbs "сам определяет" местонахождение установочных файлов. Чтобы не говорить многословно, приведу пример (фрагмент) Complete.vbs:

' Определяем букву CDROM по свойствам дисков
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
Dim dc, d
Set dc = fso.Drives
Dim LCDROM
LCDROM = ""
For Each d in dc
If d.DriveType = 4 Then
If d.IsReady Then
If fso.FileExists(d.DriveLetter & ":\$oem$\$$\Script\xp_my.txt") Then
LCDROM = d.DriveLetter
Exit For
End If
End If
End If
Next

If LCDROM="" Then
d=MsgBox("Не обнаружен CDROM", VbExclamation, "OPT_1")
Else

'Запускаем установку приложений
WshShell.Run "%windir%\regedit.exe -s " & LCDROM & ":\$oem$\$$\Script\nastr.reg", 2, true

End If

Вопрос именно в том, что SetupComplete.cmd не запускается ВООБЩЕ.

Vadikan
25-01-2012, 13:17
Вопрос именно в том, что SetupComplete.cmd не запускается ВООБЩЕ. »
Я понял ваш вопрос, но не понял, что вы сделали для самостоятельной диагностики проблемы, прочитав тему. Ведь уже на первых страницах есть прямые указания на то, куда смотреть.

Leon_K
26-01-2012, 08:28
Я понял ваш вопрос, но не понял, что вы сделали для самостоятельной диагностики проблемы, прочитав тему. »
Я тоже понял ваш ответ ;), только вот что делать понятно не очень. Что сделано? Проверена работа скрипта уже из под установленной системы - всё ОК. Прочитал эту ветку (всю), в том числе и "аналогичную" проблему у камрада Cobra_1_Stas и ваш вопрос к нему после установки папка %WINDIR%\Setup\Scripts содержит ваши файлы?.
В моём случае ответ отрицательный, что делать дальше?
Ведь уже на первых страницах есть прямые указания на то, куда смотреть. »
Возможно, я что-то пропустил или недопонял, но решения проблемы не нашёл...

Vadikan
26-01-2012, 15:38
В моём случае ответ отрицательный, что делать дальше? »
Тогда вам нужно рассказать, как вы добавляли файл в дистрибутив, включая все команды от монтирования WIM до его отключения.

Leon_K
26-01-2012, 16:24
Тогда вам нужно рассказать, как вы добавляли файл в дистрибутив, включая все команды от монтирования WIM до его отключения. »
Файл(ы) добавлялись в папку \sources (с сохранением соответствующей структуры) как описанно здесь: http://www.oszone.net/8603 (Добавление файлов с помощью $OEM$ папок), затем создавался образ методом описанным здесь: http://www.oszone.net/8590 .
WIM-образ не трогался вообще (за исключением того, что с ним WAIK "творил" - тут уж я не в курсе ;)).
На всякий "просмотрел" образ (посредством плагина FAR) всё присутствует...
Оп-па! Не всё присутствует: параметра UseConfigurationSet в AutoUnattend.xml нет вообще! Блинн...
Сейчас попробую, спасибо.

Leon_K
27-01-2012, 08:19
К сожалению, добавление параметра UseConfigurationSet в AutoUnattend.xml эффекта не дало: после установки в папке %WinDir%\Setup по-прежнему нет нужных файлов; соответственно SetupComplete.cmd не выполняется...
В чём ещё может быть причина?

Boa Soft
30-01-2012, 11:15
Не могли бы вы по-конретней указать что подправить в AutoUnattend.xml чтобы файлик SetupComplete.cmd подхватывался? Формат .xml для меня лес тёмный, а WSIM, к сожалению, слишком "неудобоварим" для понимания таких тонкостей... По крайней мере, "сходу" . »

В папке Sourcies вашего дистрибутива создать следующую структуру папок

$oem$
$$
Setup
Scripts


В папку Scripts положить SetupComplete.cmd.

Он будет выполнен независимо от наличия или отсутствия файла ответов.




© OSzone.net 2001-2012