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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   [решено] Не запускаются программы из RunOnceEx при входе в XP (http://forum.oszone.net/showthread.php?t=73595)

coolbuck 27-10-2006 14:24 503400

Не запускаются программы из RunOnceEx при входе в XP
 
Пытаюсь добавить в дистрибутив установку некоторых обновлений по методу RunOnceEx. Делаю всё, как написано в учебнике, в реестр всё заносится как надо, но при первом входе в систему ничего не происходит. Т.е. параметр Title из ключа HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx удаляется, но ни один раздел далее не выполняется и не удаляется соответственно. На сайте MSDN написано, что перед выполняемой командой необходимо ставить || (две палки). Если делать так, то всё работает, но только при условии, что не установлено значение "(по умолчанию)" в соответствующем разделе. Но при этом не открывается никакого графического окна со списком производимых действий.

Что я делаю не так? Облазил все форумы по теме, но такой проблемы не обнаружил :fool:

Простейший пример (для проверки уже сошел до минимума) файла RunOnceEx.cmd, сделанный по аналогии с прочитанным:

Код:

-----------------------------
@echo off

SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
SET i=100

REG ADD %KEY% /V TITLE /D "Установка приложений" /f

REG ADD %KEY%\%i% /VE /D "Windows Media 10" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\OEMinst\MP10Setup.exe /q" /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "Удаление временных файлов" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\OEMinst\cleanup.cmd" /f
SET /A i+=1

EXIT
-----------------------------


Решение. Виновником проблемы оказался Internet Explorer 7 (RC).

prokazzza 27-10-2006 14:33 503405

Можешь мой попробывать 100% работает,
Вопрос добавил ли ты в файл cmdlines.txt следующую команду
Код:

[COMMANDS]
"RunOnceEx.cmd"

RunOnceEx.cmd
Код:

cmdow @ /HID
@echo off

SET CDROM=%~d0

SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
SET i=100

REG ADD %KEY% /V TITLE /D "Installing Applications" /f

REG ADD %KEY%\%i% /VE /D "Preparing Installation..." /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "Preparing Installation..." /f

REG ADD %KEY%\%i% /VE /D "RAINLENDAR" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\Rainlendar.exe" /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "ADOBEREADER" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\AdbeRdr705_rus_lite.exe" /f
SET /A i+=1

EXIT


coolbuck 27-10-2006 15:04 503425

prokazzza
Цитата:

Вопрос добавил ли ты в файл cmdlines.txt следующую команду

Код:
[COMMANDS]
"RunOnceEx.cmd"
Конечно, добавил. Я же говорю, что в реестр все значения попадают нормально. Проблема именно в том, что оттуда ничего не запускается.
А чем твой способ отличается от приведенного, кроме того, что все сообщения на английском? Я на английском тоже писал, мне не помогло :(

Можно даже проще сделать, чтобы не париться со скриптами... На уже установленной винде в реестр ручками забить то, что нужно. Если писать так, как тут, то эти ключи просто игнорируются. Пробовал прописать значение ||C:\OEMinst\MP10Setup.exe /q вместо C:\OEMinst\MP10Setup.exe /q. При этом, если значение по умолчанию не установлено, то запуск пройдет, а если там написать что-нибудь типа "Windows Media 10", то результат опять тот же. :angry2:

Вот этого я и не могу понять. И почему у всех работает?

AlexVP 27-10-2006 15:47 503436

coolbuck
а можешь привести ветку реестра RunOnceEx?
после выполнения конечно твоего cmd файла ....

prokazzza 27-10-2006 17:17 503476

coolbuck

остается тока запустить RunOnceEx на уже установленной винде, и если она запускается после перезагрузки системы, то все с твоим RunOnceEx нормально, (кстате я запустил твой RunOnceEx на своем компе все запускается, тока скорее всего вместо русских букв получишь кракозабры, в какой то теме тут есть как это убрать), также можешь попробывать запустить RunOnceEx без перезегрузки системы дописав в конец RunOnceEx перед END следующие строки
Код:

rundll32.exe iernonce.dll,RunOnceExProcess
Если все запустилось и установилось нормально посмотри в файле winnt.sif (I386) нет ли у тя следующих строк например:
Код:

[GuiRunOnce]

"%systemdrive%\install\batch_file1.cmd"

Если есть то удали эти строки

MaxDELETE 27-10-2006 17:23 503479

у меня кстати такая же проблема! Поэтому и не пользуюсь

AlexVP 27-10-2006 17:41 503484

MaxDELETE
проблем нет! разберемся... вот ветку регистра пришлет тогда и увидим....

alcos 29-10-2006 10:35 503973

Цитата:

тока скорее всего вместо русских букв получишь кракозабры, в какой то теме тут есть как это убрать
Берёшь блокнот с поддержкой DOS кодировки (например: DOSPad, TigerPad, Bred-3), рисуешь в нём свой файл RunOnceEx.cmd и никаких крякозябриков с русским текстом.

coolbuck
А у тебя случайно при перезагрузке не удаляется твоя папка OEMinst с дистрибутивами, написано вроде всё правильно, может какой твик реестра на это влияет. И попробуй начать отсчёт хотя бы с 10, а не с 100.

coolbuck 30-10-2006 06:16 504217

Уважаемые участники конференции, почему нельзя топики читать внимательно? Я же написал, что в реестр всё импортируется нормально. Т.е. кодировки, RunOnceEx.cmd, winnt.sif и прочие подобные причины ни при чем.

Папка OEMinst не удаляется, потому как команда, удаляющая ее, тоже не запускается. И вообще, я пробовал тупо забивать в реестр всё ручками, без всяких скриптов, о чем тоже уже писал.

Тестирование провожу в VMware Workstation 5.0.0 build 13124. Windows XP Professional VLK с Service Pack 2. Пробовал ставить как с голым сервис-паком, так и с накатанными патчами. Ветка реестра выглядит так:

Код:


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]
"TITLE"="Установка приложений"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\100]
@="Windows Media 10"
"1"="C:\\OEMinst\\MP10Setup.exe /q"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\101]
@="Удаление временных файлов"
"1"="C:\\OEMinst\\cleanup.cmd"

rundll32.exe iernonce.dll,RunOnceExProcess делает тоже самое, то есть ничего. Удаляется только "TITLE"="Установка приложений".

Попробовал проделать то же самое на рабочей системе, т.е. выполнил RunOnceEx.cmd и затем перезагрузился. Результат тот же самый. Смена названий веток, например со 100 на 10 или на 1, тоже ни к чему не приводит.

coolbuck 30-10-2006 09:22 504270

Обнаружил сейчас одну интересную особенность. Если во время установки не включать компутер в домен, то при первом входе в систему всё отработает как надо. Я же сразу включал комп в домен, и у меня нифига не работало. Где подводный камень? :o

prokazzza 30-10-2006 09:44 504284

coolbuck

попробуй запустить мой RunOnce и перезагрузиться, напишешь потом что получиться:)

coolbuck 30-10-2006 10:06 504291

Чистоты эксперимента ради, поставил винду по-новому, но сразу зашел в домен - всё отработало. Значит, проблема была в другом. Сейчас буду искать. Найду - скажу.
Эх, дистриб исковырял весь...

coolbuck 30-10-2006 10:24 504299

Вражеский шпиён изобличён!!! Им оказался Internet Explorer 7. После его установки перестаёт отрабатывать запуск указанным способом из ветки реестра RunOnceEx. После сноса IE опять всё работает. Обидно :sorry:

vek 30-10-2006 11:09 504312

coolbuck
В смысле Internet Explorer 7? А на каком этапе он у Вас ставиться из сmdlines.txt или вообще интегрирован? И какая версия? У меня раньше IE7 интегрировался аддоном с заменой файлов (версию уже не помню. Т.е при первом входе IE7 уже стоял в системе) и таких проблем не было. Странно!

coolbuck 30-10-2006 11:25 504318

IE 7 я ставил на этапе Т-13, запускал из секции [SetupHotfixesToRun] файла svcpack.inf
Сейчас убрал его (и только его), всё стало нормально.

Кроме того, провел простой эксперимент. На поставленную ХР с IE 6 поставил IE 7, после чего попробовал запустить RunOnceEx.cmd, перезагрузился. После перезагрузки секции RunOnceEx реестра не отработали, а остались в нем. После этого снес IE 7, перезагрузился, всё прошло нормально. Причина проблемы очевидна. Непонятно только, почему так происходит. Почему IE 7 так влияет на запуск системы. Может быть, просто баг, который со временем подправят.

vek 30-10-2006 11:40 504322

coolbuck
У меня почему-то такого не было! Секции RunOnceEx реестра отрабатываются всегда нормально. (Ранее устанавливал пакет обновлений c аддоном IE75296RUS, сейчас правда аддон исключил ставлю IE7RC1Rus из RunOnceEx.cmd)

coolbuck 30-10-2006 11:51 504327

Может быть, проблема в конкретной версии. В любом случае, нужно ждать официального русского релиза, потом пробовать и делать выводы.

zver2k 25-11-2006 08:29 516790

проблема именно с IE7 - интегрировал его аддоном - RunOnceEx.cmd не отрабатывает. проверил работу RunOnceEx.cmd на установленной системе с IE7 тоже не отрабатывал - удалил его - всё нормально. Версия - русская финал.

coolbuck 27-11-2006 06:53 517350

Нашел на форуме разработчиков мелкософта:

Цитата:

I've encountered the same problem and have found that this is occuring due to a change in the iernonce.dll file. After a bit of testing, I have found that you can still launch the runonceex process by copying the IE6 version of the iernonce.dll file into any location and executing the runonceex command using it.
MSDN Forums » Internet Explorer Development » Internet Explorer Extension Development » RunOnceEx Broken w/IE7?

Сам ещё не пробовал, но ИМХО кто-то накосячил. Интересно, кто-нибудь службу поддержки уже известил?

caveman007 11-01-2007 08:49 534639

coolbuck
Проверено. Работает. Сохранил iernonce.dll из IE6 и после установки IE7 вернул его взад (т.е. перезаписал тот, который шел с IE7)

gvshil 15-01-2007 18:15 536434

caveman007 а только iernonce.dll ?
Локализация дистрибутива имеет значение?

hobbit25 24-01-2007 12:06 540493

а может кто нибудь поделиться этим файликом и как его можно внедрить чтоб RunOnceEx запускался а то проблемка решена а как сделать удобненько НЕ понятно?!

coolbuck 24-01-2007 12:34 540507

hobbit25

Берем любой оригинальный дистрибутив WinXP, идем в папку i386, находим файл IERNONCE.DL_ или IERNONCE.DLL (может быть по-разному). Если первый вариант, то это CAB-архив, в котором и лежит нужный нам файл, его нужно только извлечь. Если второй вариант, то это чисто он. Затем заменяем найденным файлом IERNONCE.DLL файл в каталоге
system32 (у меня С:\WINDOWS\system32\). И всё. Если появится предупреждение службы безопасности о замене файла старой версией, то игнорируем его (там вроде кнопка "отменить").

sattva 27-01-2007 18:00 542243

Я делал так:
добавил исходный файл "iernonce.dll" на инсталляционный диск Windows XP
добавил в "Cmdlines.txt" команду запуска скрипта "autoit-iernonce.exe"
autoit-iernonce.exe - это откомпилированный AutoIt - скрипт

Код:

Global $file='iernonce.dll'

FileCopy(@ScriptDir & '\' & $file, @SystemDir, 1)

после интеграции ИЕ7 на Т13 выполняется скрипт заменяющий измененную "iernonce.dll" на оригинальную.

Хотя наверное было бы еще проще создать соответствующий аддон (например ZZ-iernonce)

PIL123 15-02-2007 14:02 550369

Присоединяюсь к hobbit25 - не понятно, как в автоматической установке Windows подменить необходимый файл не прибегая к различным инструментариям третьих лиц. Кто-то уже решил эту проблему? Может можно как-то этот файл изначально заменить - в самом дистрибутиве IE?

hobbit25 15-02-2007 14:23 550377

Легче действительно сделать чтоб IE7ставился в RunOnceEx последним тогда все работает проверено и файлики менять никакие не нужно тем более что dimadr сделал тихий свой инсталятор!!

PIL123 15-02-2007 14:29 550386

Цитата:

dimadr сделал тихий свой инсталятор
hobbit25, киньте, пожалуйста ссылку, где можно скачать этот инсталлятор.

coolbuck 15-02-2007 14:51 550395

В опубликованном 13 февраля кумулятивном обновлении KB928090 для IE7 содержится новая версия iernonce.dll. Кто-нибудь может проверить, как оно работает и доложить о результатах?

hobbit25 15-02-2007 16:50 550460

Incognitus http://forum.oszone.net/thread-73966.html Аддон Internet Explorer 7 Final (русский) его и ставиш!!!

но не как аддон а именно через RunOnceEx и обезательно последним!!!!!!!!!!!!!

Murrey 19-02-2007 06:50 552196

coolbuck
Похоже, я проверил.... :(
Вкратце опишу проблему. IE7 интегрирован в дистрибутив. До вчерашнего дня проходило все нормально - RunOnceEx отрабатывал, как положено. Обновления устанавливаю через svcpack.inf. Вчера добавил последние, в том числе KB928090. Появились ровно те же симптомы: записи в реестре есть, установка программ не происходит. Сейчас вот начал искать решение проблемы. Сегодня вечером проверю наверняка, закомментирую KB928090 и установлю, завтра по результатам отпишусь.

Murrey 20-02-2007 07:32 552715

Вчера все проверил - KB928090 проблему не решает! Более того, при установке на T-13 он эту проблему вызывает :) Пришлось его ставить через RunOnceEx

coolbuck 20-02-2007 07:47 552718

Грусна... Зачем они его вообще сломали? :cry:

DREDivan 27-02-2007 21:44 556136

народ такой вапросик
я запускал установку финального IE7 rus через RunOnceEx он ставился но чёто несильно хотел пахать, а потом решыл поставить на Т-12 и RunOnceEx воще здох и нехочет запустится с CD.
ктото знает чё может быть???

coolbuck 28-02-2007 06:26 556226

DREDivan
Две страницы темы не осилил прочитать? После установки IE7 RunOnceEx не отрабатывает. Именно об этом эта тема.

Murrey 22-05-2007 06:14 589497

Проверил на днях, как идет установка с KB931768, который вместо KB928090. Проблема осталась

Guru431 08-10-2007 15:00 656337

И хотя тема довольно долго не обсуждалась, но все-таки решение проблемы до конца озвучено не было, поэтому я думаю стоит его огласить.

Эта проблема у меня появлялось, сразу после установки Internet Explorer 7.0.5730 на WinXP SP2 и в какой-то момент (а может быть и сразу) после установки Vista на другом компе.
Проблема, как и говорилось, заключается в файле iernonce.dll, который находится в папке System32.

Решается эта беда с помощью обновления Internet Explorer 7:
- Для XP SP2 - IE7-WindowsXP-KB937143-x86-RUS
- Для Vista - Windows6.0-KB937143-x86

Обновление меняет версию iernonce.dll с 7.0.6000.16386 на 7.0.6000.16512.

После перезагрузки RunOnceEx снова работает!!!

ru_efim 10-10-2007 14:30 657693

Guru431
Решается эта беда с помощью обновления Internet Explorer 7:
- Для XP SP2 - IE7-WindowsXP-KB937143-x86-RUS

Решается но не во всех случаях. Обновление содержит две версии файла iernonce.dll.
Я проверил так:
Запустил обновление на установку.
Приложение "развернулось" и создало временную директорию, у меня С:\c1002766e403c6e9f4dc\, у других наверное будет что-то подобное. В этой директории папка SP2GDR содержит файл iernonce.dll версии 7.00.6000.16512, а папка SP2QFE файл iernonce.dll версии 7.00.6000.20627. Я интегрировал все обновления, кроме этого, в дистрибутив Windows XP. Установил его. Проверил, запуск приложений прописанных в RunOnceEx при загрузке системы не происходит. Установил обновление, IE7-WindowsXP-KB937143-x86-RUS, проверил версию iernonce.dll - 7.00.6000.16512, проверил запуск прогр. прописанных в RunOnceEx, все OK. Но при интеграции этого обновления, в дистрибутив интегрируется файл iernonce.dll версии 7.00.6000.20627. и приложений прописанные в RunOnceEx при загрузке системы не запускаются.
Что это случайность? Кривые руки? Как бороться?

jackrv 02-08-2009 19:41 1183754

Чет все-равно не пойму :( Всю ветку перелопотил и непонял..
У меня интегрирован аддоном IE8 - и RunOnce не срабатывает
Как побороть не совсем понял :(


Время: 08:36.

Время: 08:36.
© OSzone.net 2001-