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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Не добавляется в реестр инфа через bat + smart install maker (http://forum.oszone.net/showthread.php?t=285181)

antoshka333 16-07-2014 22:40 2377369

Не добавляется в реестр инфа через bat + smart install maker
 
Собственно сабж, имеем на выходе батник с 1й строкой для теста

REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v USerinit /t REG_SZ /d "C:\Windows\System32\userinit.exe, С:\1.vbs" /f
pause

пауза, чтоб видеть ошибки там на всякий случай. запускаю руками - все идеально, в regedit показывает что добавлена запись.
Запускаю smart install maker, добавляю .bat в него, компилирую, при этом стоит галочка "требовать права администратора".
При запуске батник запускается, мы видим искомую запись что импорт реестра успешен, а на самом деле в regedit пусто. Я впервые вижу такой глюк. Чтобы руками норм было а через инсталлятор писало что добавлено а по факту нет..... пытался я и в инсталляторе сделать непосредственно в разделе реестр сделать - тоже самое, добавлял и в execute shell раздел строку - бесполезно. антивирусов и фаерволов не стоит.
Запуская же мышкой все работает ... куда копать?

Iska 17-07-2014 06:27 2377408

antoshka333, зачем Вам надо писать что-то в «Userinit»?

Shtirliz8 17-07-2014 21:56 2377722

Добрый вечер. Как раз столкнулся с такой же проблемой (я в юзер инит не лезу :D )
Батник примерно такого содержания:
Код:

reg add "HKLM\SOFTWARE\Some_program" /ve /t REG_SZ /d RABOTAY /f
pause

Выводит что операция успешно завершена, но в реестр запись не добавляется и не перезаписывается, в случае существования. Причем если скопировать 1ю строку в командную строку, то все работает. И даже еще интереснее: если вызвать из командной строки этот же самый батник (start C:\1.bat), то все работает. Эта проблема наблюдается на висте, на xp все работает, семерку не пробовал.

Shtirliz8 17-07-2014 22:32 2377741

Заработало после, добавления в начале
Код:

cd C:\Windows\SysWOW64
Как я понял запускалась 32х битная версия reg.exe, которая отрабатывала вот таким вот странным образом.

Iska 18-07-2014 00:51 2377792

Shtirliz8, может, просто не надо вызывать пакетный файл и командную строку из-под x86-оболочки?!

Shtirliz8 18-07-2014 01:31 2377802

Iska, но я же просто запускаю батник в экслорере, а он получается обрабатывается x86 cmd.exe. Да и "пуск->выполнить->cmd" так же приводит к запуску того же system32\cmd.exe. Может быть я чего-то не понимаю, но по моему не очень логичное поведение системы.
В общем я понял, что пишу какую-то ерунду и ушел курить статьи

Iska 18-07-2014 06:52 2377831

Цитата:

Цитата Shtirliz8
Iska, но я же просто запускаю батник в экслорере, а он получается обрабатывается x86 cmd.exe. Да и "пуск->выполнить->cmd" так же приводит к запуску того же system32\cmd.exe. »

Тогда не знаю, в чём дело.

Цитата:

Цитата Shtirliz8
Может быть я чего-то не понимаю, »

Я тоже ;).

gora 18-07-2014 13:25 2377947

Цитата:

Цитата Shtirliz8
Заработало после, добавления в начале »

Оно и до этого работало. В х64 системе есть два reg.exe (х86 и х64). Некоторые разделы реестра также "разделены" на две группы (х86 и х64). Каждый из reg.exe может "добраться" только до соответствующей ему по разрядности группы в реестре. Проверяли результат работы Вы наверное regedit.exe, коих тоже два (х86 и х64). Так вот если пишущий reg.exe не соответствовал читающему regedit.exe по разрядности, то Вы можете и не увидеть результата.

Shtirliz8 21-07-2014 09:59 2379170

gora, спасибо за исчерпывающий ответ

Цитата:

Некоторые разделы реестра также "разделены" на две группы (х86 и х64)
А программы, как я понял, обращаются к реестру Win-Api функции, и направляются системой в соответствующую ветку в зависимости от их разрядности?

gora 21-07-2014 12:53 2379258

Цитата:

Цитата Shtirliz8
направляются системой в соответствующую ветку в зависимости от их разрядности? »

Угу.


Время: 22:16.

Время: 22:16.
© OSzone.net 2001-