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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista (http://forum.oszone.net/forumdisplay.php?f=83)
-   -   [решено] Импорт параметров реестра в HKLM из SFX в Windows 7 x64 (http://forum.oszone.net/showthread.php?t=189398)

9119 20-10-2010 17:46 1523309

Импорт параметров реестра в HKLM из SFX в Windows 7 x64
 
есть bat-ник ... в котором, предположим, прописано следующее:
Код:

regedit.exe /S reg.reg
НО в реестр ничего не добавляется.
bat-ник этот запускается winrar-ом после распаковки(который в свою очередь запускается из под встроенной записи админа WIN 7х64)... причем если вытянуть этот рег-твик из архива и применить "вручную" - тогда все ок! все ветки добавляются как надо..
Есть какие-то варинаты заставить работать из батника?

9119 22-10-2010 15:25 1524859

Vadikan, екзешник распаковывает файлы во временную папку и запускает install.bat следующего содерждания:
читать дальше »
Код:

@ECHo off
copy /y oemlogo.bmp %WINDIR%\oemlogo.bmp
regedit.exe /S reg.reg
exit


Vadikan 22-10-2010 17:26 1524930

9119,
Для начала попробуйте
Код:

@ECHo off
regedit.exe /S reg.reg
pause

и посмотрите, не выводятся ли какие-нибудь ошибки.

9119 22-10-2010 17:33 1524935

Vadikan,
ошибок нет - вот:
читать дальше »
Код:

C:\Users\836D~l\AppData\Local\Temp\RarSFX0>regedit.exe /S reg.reg 
C:\Users\836D~l\AppData\Local\Temp\RarSFX0>pause 
Для продолжения нажмите любую клавишу . . .


З.Ы. при применении без ключа /S - выскакивает окно с потверждением внесения изменений в реестр, жму ОК , НО все равно ничего не происходит!

Vadikan 22-10-2010 19:36 1525007

Два варианта попробуйте
1.
Код:

reg import reg.reg
2. Добавление любого из прописанных в файле параметров командой REG ADD. См. Основы работы с реестром Windows

Паузу в файле сохраняйте и проверяйте наличие изменений в реестре, не закрывая окно консоли.

9119 22-10-2010 20:21 1525040

Vadikan,
вообщем следующая ситуация...
по первому варианту(как и впринципе) пишет что "успешно завершено", а значений как не было так и нет("ручаной" запуск - работает)

по второму варианту.. добавлял командой:
Код:

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation /v Manufacturer /t REG_SZ /d AMD
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation /v Logo /t REG_SZ /d %WINDIR%\\oemlogo.bmp
pause

исход тот же что и в первом варианте и так же все нормально работает(добавляется) только при "ручном" запуске!
PS я в шоке....(( какие еще будут варианты? может что-то не так с правами? (сижу под учеткой админа, система недавно установлена)..уже голова кругом!

Vadikan 22-10-2010 21:52 1525114

9119, щелкните ПКМ по SFX и запустите его от имени администратора.

9119 22-10-2010 22:18 1525132

Vadikan,
и с помощью ПКМ запускал... и во вкладке совместимости ставил соответствующую галку..ефекта ноль..
P.S. владельца веток реестра тоже проверил, там все как нужно!
для сравнения закинул батник на панельку проги RocketDock...тоже эфекта ноль, т.е. получается батник с нужной командой не выполняет добавление веток реестра, если он запускается "сторонней" программой (WinRar, RocketDock..)...
Положительный еффект получаем только при "ручном запуске" батника

Vadikan 23-10-2010 00:04 1525233

9119, в оригинале у вас была еще команда копирования файла - она срабатывает?

Также проверьте запись в пользовательский раздел реестра - HKCU. Любым способом, хоть REG, хоть CMD.

И что у вас за дистрибутив? Какие в нем изменения производились по сравнению с оригинальной лицензией?

9119 23-10-2010 13:13 1525428

Vadikan, команда копирования срабатывает! (что и странно...)

с HKCU тоже все норм!

дистрибутив Win 7 x64 Ultimate (ориг образ, MD5 - 938E507DE4EFE2A477CC1F825D4FD222), в нем удален файл для выбора редакции при установке, поправлено меню пуск(ширина/полоска) и заменено "Максимальная" на "Ultimate"!Больше ничего

Vadikan 23-10-2010 18:24 1525625

Цитата:

Цитата 9119
с HKCU тоже все норм! »

Угу, это хорошо. Есть предположение, что процесс запускается с низким уровнем целостности и параметры реестра перенаправляются в виртуальное хранилище, поэтому вы их не видите. Поискать можно в
Код:

HKEY_USERS\<User SID>_Classes\VirtualStore\Machine\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation
Ваш <User SID> можно найти в
Код:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
См. также Так ли страшен контроль учетных записей? - Виртуализация файлов и реестра.

Проверить правильность предположения можно также, отключив UAC и выполнив SFX.

9119 23-10-2010 19:14 1525649

Vadikan,
Код:

HKEY_USERS\<User SID>_Classes\VirtualStore
- нет такой ветки у меня в реестре

UAC полностью отключил (ползунок в самое нижнее положение) - эфекта ноль

Также применял твик:
Код:

;Отключение драйвера виртуализации UAC
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\BITS]
"StateIndex"=dword:00000001

также эфекта ноль..

:angry2:

Vadikan 23-10-2010 21:18 1525751

Цитата:

Цитата 9119
UAC полностью отключил (ползунок в самое нижнее положение) - эфекта ноль »

Перезагружались после этого?

Гм... прикрепите свой SFX.

9119 23-10-2010 22:27 1525793

Vadikan, да, перезагружался!

Vadikan 24-10-2010 14:12 1526151

9119, к сожалению, я не могу воспроизвести вашу проблему.

UAC выключен: информация записывается.
UAC включен: простой запуск - отказано в доступе; запуск от имени администратора - информация записывается.

У меня идеи закончились.

P.S. У вас лишний слэш в %WINDIR%\\ но это не влияет на запись.

9119 24-10-2010 15:31 1526229

Vadikan,
как бы там ни было... спасибо за помощь...:Beer: видимо что-то не так с самой системой...буду рыть дальше..

Vadikan 24-10-2010 16:10 1526245

9119, смущает то, что информация записывается в реестр, судя по сообщению, но не отображается... А вы пробовали искать добавленные параметры в реестре? CTRL+F - oemlogo.bmp

9119 24-10-2010 17:17 1526269

Vadikan,
нужные параметры найдены! в разделе:
Код:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\OEMInformation
Есть какие-то идеи?

Vadikan 24-10-2010 17:22 1526277

9119, так у вас 64-разрядная система... вы об этом ни слова не сказали... См. Registry Redirector (Windows) (с переводом)

Мне нужно было сразу спросить, достигается ли нужный эффект после импорта твиков, а не искать причину отсутствия параметров в указанном разделе. Эффект достигается?

Цитата:

Цитата 9119
какая служба за это отвечает(отключить попробую)? »

Не надо ничего отключать...

9119 24-10-2010 17:30 1526291

Vadikan,
читать дальше »
Цитата:

Цитата Vadikan
И что у вас за дистрибутив? Какие в нем изменения производились по сравнению с оригинальной лицензией? »

Цитата:

Цитата 9119
дистрибутив Win 7 x64 Ultimate (ориг образ, MD5 - 938E507DE4EFE2A477CC1F825D4FD222), в нем удален файл для выбора редакции при установке, поправлено меню пуск(ширина/полоска) и заменено "Максимальная" на "Ultimate"!Больше ничего »



эффект достигается....(но не туда :teeth:)
ща ознакомимся....

Vadikan 24-10-2010 17:35 1526298

Цитата:

Цитата 9119
эффект достигается....(но не туда »

Да какая разница куда... Работает и все :)

Сорри, просмотрел разрядность в конфигурации. В общем, проблема решена, причина поведения понятна.

9119 24-10-2010 17:43 1526306

Цитата:

Цитата Vadikan
В общем, проблема решена, причина поведения понятна »

....
хм... а вы бы не могли чуть подробнее обьяснить (как для чайника) а то я что-то не до конца понял причину поведения и уж тем более проблема не решена для меня...
P.S особенно не понятно почему при "ручном применении" добавляет куда нужно, а с помощью сторонней программы в другую ветку реестра! И как все таки должен правильно выглядеть твик ?

Vadikan 24-10-2010 18:31 1526349

Цитата:

Цитата 9119
хм... а вы бы не могли чуть подробнее обьяснить (как для чайника) а то я что-то не до конца понял причину поведения »

Я вряд ли смогу объяснить это понятнее, чем написано в MSDN. Перенаправление реестра само по себе является сложной концепцией.

Цитата:

Цитата 9119
особенно не понятно почему при "ручном применении" добавляет куда нужно, а с помощью сторонней программы в другую ветку реестра! »

Думаю, потому что WinRAR - 32-разрядное приложение. А когда вы запускаете командный файл вручную, он обрабатывается в 64-разрядном контексте.

Цитата:

Цитата 9119
И как все таки должен правильно выглядеть твик ? »

Он правильно выглядит у вас.

Цитата:

Цитата 9119
уж тем более проблема не решена для меня... »

Проблемы изначально не было, потому что вы зациклились на поиске параметров в реестре, а не на конечном рез-те, который достигается выполнением команды.

9119 24-10-2010 19:48 1526399

Vadikan,
читать дальше »
Цитата:

Цитата Vadikan
Думаю, потому что WinRAR - 32-разрядное приложение »

версия Winrar как раз х64..

Цитата:

Цитата Vadikan
Он правильно выглядит у вас.
Проблемы изначально не было, потому что вы зациклились на поиске параметров в реестре, а не на конечном рез-те, который достигается выполнением команды. »

Задам вопрос по другому.... как добиться того, чтобы при выполнении твика сторонней программой, нужные параметры прописываались именно в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation а не в HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\OEMInformation) - это и есть моя проблема...!

P.S. к примеру команда
Код:

reg copy HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\OEMInformation HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation /s /f
также не дает нужного результата при запуске сторонним приложением..

Цитата:

Цитата Vadikan
потому что вы зациклились на поиске параметров в реестре, а не на конечном рез-те »

в том то и дело, что конечный результат не правильный/не желаемый.. добавляем в одну ветку реестра, а результат наблюдаем в другой ветке.. (ладно бы если б дублировалось в двух ветках, а так только в одной ну и конечный результат, как следствие, отрицательный!)

Vadikan 24-10-2010 21:33 1526500

Цитата:

Цитата 9119
версия Winrar как раз х64.. »

Но ведь WinRAR не участвует в этом процессе...

Цитата:

Цитата 9119
Задам вопрос по другому.... как добиться того, чтобы при выполнении твика сторонней программой, нужные параметры прописываались именно в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation а не в HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\OEMInformation) - это и есть моя проблема...! »

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

Цитата:

Цитата 9119
в том то и дело, что конечный результат не правильный/не желаемый.. добавляем в одну ветку реестра, а результат наблюдаем в другой ветке.. »

Ну и что? А какая разница, где это отображается для вас? Не смотрите в реестр, и все будет хорошо.


Вас, кстати, не напрягает, что в меню пуск размещены ярлыки к программам, при том что сами программы не установлены в папку Start Menu?

В общем, я исчерпал запас объяснений и фантазию. Если мне не удалось вас разубедить в том, что система неправильно работает, я весьма сожалею о потраченном времени...

Vadikan 24-10-2010 22:06 1526528

P.S. По-моему, я знаю, как вас убедить... Выполните в пуск - выполнить
Код:

%systemroot%\syswow64\regedit
и перейдите в раздел реестра, где вы ожидаете увидеть параметры.

См. также How to view the system registry by using 64-bit versions of Windows (с переводом)

9119 24-10-2010 22:37 1526551

Vadikan,
очень благодарен Вам за ваше время и объяснения...
Цитата:

Цитата Vadikan
Если мне не удалось вас разубедить в том, что система неправильно работает »

Дак я и изначально понимал, что система работает правильно,но от того что я это осознаю ничего не меняется (в плане результата), а поэтому вернемся к "нашим баранам":
есть батник и файл .bmp запакованые в sfx-архив.После рапаковки sfx запускает батник, который в свою очередь добавляет ветки реестра и копирует .bmp в нужную папку. На выходе получаем доп. изображение в "МК"-"свойства",
Цитата:

Цитата Vadikan
А какая разница, где это отображается для вас? »

в том то и дело, что мне вообще все равно как оно отображается, но к сожалению добавление нужных параметров в ветку HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\OEMInformation не дает нужный результат (доп. изображение в "МК"-"свойства").Результат положительный только в случае добавления параметров именно в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation! (на данный момент этого можно достичь только запуском батника "вручную")

Как то можно заставить систему понимать запуск сторонней программой, как запуск "вручную" под учеткой админа?.. или единственный выход в моей ситуации это только "ручной " запуск данного батника?

P.S. я надеюсь, что на этот раз правильно сформулировал свой вопрос, а то у меня такое впечатление, что мы с вами на разных языках говорим: я вам о конечном результате(доп. изображение в "МК"-"свойства"), а вы мне о специфике работы с реестром Win 7 x64!

Vadikan 25-10-2010 00:35 1526619

9119, гм... Правильно ли я понимаю, что при запуске батника из SFX:
а) параметры находятся в Wow6432Node
б) в свойствах системы не отображается логотип
Так?

Если так, то попробуйте такой вариант. В батнике команда:
Код:

%systemroot%\syswow64\regedit /s reg.reg

9119 25-10-2010 11:39 1526808

Цитата:

Цитата Vadikan
Правильно ли я понимаю »

Абсолютно правильно вы меня поняли!....:Beer:
Код:

%systemroot%\syswow64\regedit /s reg.reg
- не помогло!...все равно при запуске праметры идут в ветку Wow6432Node..(

9119 25-10-2010 12:01 1526821

Цитата:

Цитата Vadikan

импорт до установки OS не подходит, т.к. нужно решенеие этого вопроса непосредственно в "живой" системе..
На данный момент решение есть только в "ручном" запуске....буду искать дальше!Спасибо за потраченное время!

Vadikan 25-10-2010 21:30 1527267

9119, понятно, но есть еще подходы :) Я опишу все, т.к. не могу проверить их сам.

Первый - Установка приложений способом RunOnceEx в двух вариациях.

SFX настраивается на распаковку файлов на рабочий стол без их удаления (это потом решить можно) и содержит два файла: reg.reg с твиками и командный файл вида
Код:

@echo off

SET KEY=HKCU\Microsoft\Windows\CurrentVersion\RunOnceEx
SET i=100

REG ADD %KEY% /V TITLE /D "Установка приложений" /f
REG ADD %KEY%\%i% /VE /D "REG ADD" /f
REG ADD %KEY%\%i% /V 1 /D "REGEDIT /S %userprofile%\desktop\reg.reg" /f
SET /A i+=1

rundll32.exe iernonce.dll,RunOnceExProcess

Командный файл запускается, вносит параметры в реестр (HKCU) и запускает RunOnceEx. Не уверен, что сработает... скорее - вторая вариация будет лучше...

Второй вариацией этого способа является замена последней команды на перезагрузку типа shutdown /r, при этом должен быть сконфигурирован автоматический вход в систему.

Второй способ - с тем же подходом к распаковке. Командный файл импортирует команду в планировщик с последующим вызовом. Ваш командный файл должен иметь вид

Код:

;Импорт задачи MyImport
%WINDIR%\system32\Schtasks.exe /Create /RL Highest /TN MyImport /SC "ONCE" "regedit /s %userprofile%\desktop\reg.reg"
;Запуск задачи MyImport
%WINDIR%\system32\Schtasks.exe /Run /TN MyImport

Пробуйте :)

Boa Soft 26-10-2010 11:45 1527658

Есть еще один способ - положить в архив 64бит версию cmd.exe, переименовав его, например в cmd64.exe, и вызывать батник именно через него.

Код:

cmd64.exe /c ваш.bat

Vadikan 26-10-2010 12:56 1527707

Boa Soft, интересный вариант. А можно ли вызвать 64-разрядную версию напрямую из системы, не включая в архив? Я уже предлагал %systemroot%\syswow64\regedit /s reg.reg чуть выше, но это не сработало. По-моему, это решение из той же оперы.

9119 26-10-2010 14:24 1527795

Цитата:

Цитата Boa Soft
положить в архив 64бит версию cmd.exe »

не срабатывает..

Vadikan,
обе вариации первого способа не дают результат..
Вторым способом получаем следующее(я в начале команду копирования дописал):

p.S. что-то не так с синтаксисом команды, но я что-то не смог разобраться что именно :lamer:

Vadikan 26-10-2010 17:46 1527963

Цитата:

Цитата 9119
что-то не так с синтаксисом команды »

Угу... д.б. так

Код:

;Импорт задачи MyImport
%WINDIR%\system32\Schtasks.exe /Create /RL Highest /TN MyImport /SC "ONCE" /TR "regedit /s %userprofile%\desktop\reg.reg"
;Запуск задачи MyImport
%WINDIR%\system32\Schtasks.exe /Run /TN MyImport


9119 26-10-2010 18:56 1528015

Vadikan,
.... теперь пишет
читать дальше »
Код:

ОШИБКА: не указано значение параметра /ST.

когда просто добавляю /ST в строчку пишет
читать дальше »
Код:

ОШИБКА: Синтаксическая ошибка. Для '/ST' необходимо ввести значение.

Хотя в справке по параметру пишет вот что:
читать дальше »
Код:

/ST    <время_начала>    Время запуска задачи. Формат
                    указания времени: ЧЧ:мм (24-часовой), например, 14:30
                    вместо 2:30 PM. Если параметр /ST не задан, то по
                    умолчанию используется текущее время.
Этот параметр
                    должен использоваться вместе с /SC ONCE.


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

Lennyvets 26-10-2010 19:12 1528021

9119,
у вас модуль SFX 32-битный:

9119 26-10-2010 19:19 1528029

Lennyvets,
вы правы на 100%.. . проблема заключалась именно в этом! куда ж я глядел то! :o
проблема решена...:rupor:
ветки добавляются куда нужно без" лишних танцев с бубном" через:
Код:

regedit.exe /S reg.reg
Vadikan, Boa Soft, Lennyvets огромное спасибо за помощь!

Vadikan 26-10-2010 20:04 1528063

Нет слов...


Время: 01:50.

Время: 01:50.
© OSzone.net 2001-