Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Некорректное выполнение reg-файлов в Windows 7 x64 и Windows 8 x64

Ответить
Настройки темы
Некорректное выполнение reg-файлов в Windows 7 x64 и Windows 8 x64

Аватара для Nun-Nun

Ветеран


Сообщения: 2158
Благодарности: 294


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Nun-Nun
Дата: 05-06-2013
Проблема, собственно, вылезла при внесении в системный реестр данных для обновлений MS Office 2003 из reg-файла. Почему-то нужная ветка, куда обычно прописываются эти обновления, либо не появляется совсем, либо данные вместо неё прописываются в другую ветку.
Должно быть:
Код: Выделить весь код
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\9140210900063D11C8EF10054038389C\Patches\...]
а получается:
Код: Выделить весь код
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW3264node\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\9140210900063D11C8EF10054038389C\Patches\...]
Кто-нибудь знает как решить проблему средствами самой ОС (если конечно такое возможно), а не сторонними программами?

Отправлено: 00:51, 05-06-2013

 

Аватара для Nun-Nun

Ветеран


Сообщения: 2158
Благодарности: 294

Профиль | Отправить PM | Цитировать


Цитата boss911:
Ваши настройки (необходимые ключи, о якобы установленных обновлениях) из REG файла, который импортировал Setup.exe->Setup.ini через REG.exe, пошли в "HKLM\SOFTWARE\WOW3264node\Microsoft\..."? Если да, то так и должно быть. Офис 32-bit, соответственно обновления тоже должны быть 32-bit, а все, что 32-bit на OC 64-bit идет в "WOW3264node", так положено (насколько мне известно).
Я что-то не понимаю или запутался. По вашим словам, как я понял, вам надо прописать обновления для MSO 2003 32-bit в ту часть реестра, где хранится информация для 64-bit ПО/ОС, но ведь это не правильно.»
А, так вот в чём дело! Я-то по чайниковости думал об этом наоборот, что ветка с ...\WOW3264node\... - это для 64-bit, а ветка без неё - для 32. Ну что ж, буду знать! Спасибо за подсказку. Сижу на XP, а с 7 и 8 сталкивался всего несколько раз, отсюда и непонятки.
Цитата boss911:
Не понятно. А офис вы там видите? »
Вижу.
Цитата boss911:
Это точно 32-bit обновления? И, что, инфу пишет (32-bit обновление) в "HKLM\SOFTWARE\Microsoft..."?»
32 - точно, а что касается "HKLM\SOFTWARE\Microsoft...", то наоборот (моя ошибка, см. пояснение в этом посте выше).

All

С учётом сказанного, вопрос остаётся открытым: получается, что для корректного внесения хотфиксовых данных с помощью reg-файла и средств самой ОС в реестр нужно в дистрибе офиса иметь два reg-файла - один для x64, а другой для x32 ? Тогда как в Setup.ini прописать выбор запуска нужного reg-файла?

-------
Свобода не означает вседозволенность.


Последний раз редактировалось Nun-Nun, 06-06-2013 в 22:19.


Отправлено: 22:01, 06-06-2013 | #11



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Ж.Д.А.Л.К.Е.Р.

Ветеран


Contributor


Сообщения: 1861
Благодарности: 868

Профиль | Отправить PM | Цитировать


Nun-Nun, Одного reg-файла достаточно. Пере направление в WOW3264node выполняется автоматом если импорт reg-файла запускается из под 32-bit приложения.
А если тебе нужно избежать пере направления то на батнике это будет выглядеть так: If Exist %SystemRoot%\SysWOW64 %SystemRoot%\sysnative\regedt32.exe /s c:\WUfix.reg. Сначала определяем что система х64 (%Processor_Architecture% не подойдет потому что он покажет разрядность программы), а после выполняем импорт обратившись через %SystemRoot%\sysnative (доступ в реальный каталог %SystemRoot%\System32 для х86 программ).
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:31, 07-06-2013 | #12


Аватара для Nun-Nun

Ветеран


Сообщения: 2158
Благодарности: 294

Профиль | Отправить PM | Цитировать


Спасибо, попробую, правда не очень хочется иметь лишние бантики в дистрибе.

-------
Свобода не означает вседозволенность.


Отправлено: 01:38, 07-06-2013 | #13


Аватара для boss911

Alien


Сообщения: 4262
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Цитата sov44:
В итоге msp-шки, как и положено скрин, прописались в »
Странно, тогда я не понимаю MS, либо я чего-то не знаю.

Ж.Д.А.Л.К.Е.Р., а разве 32-bit приложение может получить доступ к 64-bit? Я о том, если батник будет запущен 32-bit приложением, то сработает CMD.exe 32-bit, а оно в своем случае запустит импорт REG файла через 32-bit regedt.exe/reg.exe. Честно сказать, я ранее не слышал про такой метод:
Цитата Ж.Д.А.Л.К.Е.Р.:
выполняем импорт обратившись через %SystemRoot%\sysnative (доступ в реальный каталог %SystemRoot%\System32 для х86 программ). »
То есть, запуская regedt32.exe 32-bit приложением, оно перенаправит к 64-bit версии regedt.exe?



Цитата Nun-Nun:
Я-то по чайниковости думал об этом наоборот »
А я для кого это писал?

Цитата Nun-Nun:
не очень хочется иметь лишние бантики в дистрибе. »
Иначе не как, так как Setup.exe->Setup.ini 32-bit, это значит, что он будет работать напрямую только с 32-bit приложениями, что в следствии ведет к перенаправлению в "WOW3264node". А нечто подобное:
Код: Выделить весь код
[ChainedInstall_1]
TaskName=Add Updatesinfo to registry
TASKTYPE=exe
PATH=REG.exe
PATH2=%SystemRoot%\sysnative\REG32.exe
CmdLine=IMPORT Updates.reg
CmdLine2=IMPORT Updates.reg
нельзя с Setup.ini проделать, указать два и более запуска? Или может вторую секцию [ChainedInstall_2] ? Остается еще вопрос, не будет ли оно ругаться на недоступность REG32.exe в ОС 32-bit. Поэкспериментируйте, узнайте, что может/умеет Setup.ini.

Отправлено: 02:17, 07-06-2013 | #14


Аватара для Ж.Д.А.Л.К.Е.Р.

Ветеран


Contributor


Сообщения: 1861
Благодарности: 868

Профиль | Отправить PM | Цитировать


boss911, Ты же сам дал ссылку на предыдущей странице, где можно найти следующее:
Цитата:
32-bit applications can access %SystemRoot%\System32 through the pseudo directory %SystemRoot%\sysnative.
По русски это - х32 приложение может получить доступ к х64 файлам что физически находятся в %SystemRoot%\System32, обращаясь к ним через %SystemRoot%\sysnative.
А в случае когда х32 приложение обращается в %SystemRoot%\System32 система его переводит в %SystemRoot%\SysWOW64 (это как по аналогии в реестре с WOW3264node).
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:32, 07-06-2013 | #15


Аватара для boss911

Alien


Сообщения: 4262
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Цитата Ж.Д.А.Л.К.Е.Р.:
Ты же сам дал ссылку на предыдущей странице »
Дать-то я дал, но с английским я не дружу. Знать бы мне про "sysnative" пару-тройку лет тому назад (и никто тогда не подсказал), я бы решил проблему с доступом 32-bit приложениями к 64-bit более красивей и проще. Спасибо.
Цитата Ж.Д.А.Л.К.Е.Р.:
А в случае... »
Это мне уже давно известно, немало я тогда шишек набил, пока не докопался.

Nun-Nun, тогда батник или ковыряйте Setup.ini.

Отправлено: 05:00, 07-06-2013 | #16


Аватара для Nun-Nun

Ветеран


Сообщения: 2158
Благодарности: 294

Профиль | Отправить PM | Цитировать


Думаю, что вариант с бантиком, предложенный Ж.Д.А.Л.К.Е.Р., - действительно один из рабочих. Во всяком случае команда
Код: Выделить весь код
If Exist %SystemRoot%\SysWOW64 %SystemRoot%\sysnative\regedt32.exe /s c:\WUfix.reg
должна нормально работать на любой ОС (и на x32 и на x64).

P.S. Господа! Перефразирую известную фразу Мкртчана - "Я Вам один умный мысль скажу, Вы только не обижайтесь!" (к/ф "Мимино"). Ведь можно создать установщик с использованием модифицированных модулей 7-Zip от Олега Щербакова. Там разрядность ОС легко определяется средствами самих модулей и, соответственно, не представляет сложности запустить приложение соответствующей разрядности!

-------
Свобода не означает вседозволенность.


Отправлено: 00:19, 08-06-2013 | #17


Аватара для boss911

Alien


Сообщения: 4262
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Nun-Nun, можно, конечно, но мне батники ближе.

Отправлено: 02:01, 08-06-2013 | #18


Аватара для wolkow70

Ветеран


Сообщения: 3206
Благодарности: 845

Профиль | Отправить PM | Цитировать


Господа, вы учитывайте, что некоторые 32-битные приложения при установке часть записей могут вносить в 32- разряную часть реестра, а часть в 64-разрядную. И с таким часто приходится сталкиваться.
Цитата Nun-Nun:
Там разрядность ОС легко определяется средствами самих модулей »
Этого не достаточно. Определиться то оно определится, но в команде все равно должно быть указано отключение перенаправления в WOW64, если это требуется.

-------
Человек человеку - друг, товарищ и волк!


Отправлено: 07:27, 09-06-2013 | #19


Аватара для Nun-Nun

Ветеран


Сообщения: 2158
Благодарности: 294

Профиль | Отправить PM | Цитировать


Цитата wolkow70:
но в команде все равно должно быть указано отключение перенаправления в WOW64, если это требуется. »
Что закоманда должна быть и как должна выглядеть? Какой-нибудь пример приведите, пожалуйста.

-------
Свобода не означает вседозволенность.


Отправлено: 12:06, 10-06-2013 | #20



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Некорректное выполнение reg-файлов в Windows 7 x64 и Windows 8 x64

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
HDD - [решено] Windows 7 x64 видит раздел NTFS, а Windows Server 2008 x64 видит RAW? llVKll Накопители (SSD, HDD, USB Flash) 16 27-03-2013 08:57
HDD - Windows 7 x64 видит раздел NTFS, а Windows Server 2008 x64 видит RAW? llVKll Накопители (SSD, HDD, USB Flash) 0 22-03-2013 08:45
Импорт параметров реестра (*.reg) из коммандной строки для Windows XP-7 x86-x64 olmak Автоматическая установка приложений 1 24-10-2012 16:18
ищу KB922498 для Windows XP x64 или Windows Server 2003 x64 front242 Microsoft Windows NT/2000/2003 19 07-05-2008 19:12




 
Переход