Alker Опубликовано 20 июня, 2012 Жалоба Поделиться Опубликовано 20 июня, 2012 Здравствуйте!Возник вопрос.Необходимо создать командный файл или vbs скрипт для поиска параметра "OLGТ" в реестре, например:HKEY_CLASSES_ROOT\CLSID\{FFGH7029-84D7-4E1E-BE44-B0019BC54J9D}и добавления в раздел {FFGH7029-84D7-4E1E-BE44-B0019BC54J9D}два новых строковых параметра - "Find" и "Conf" с произвольными значениями в каждом, например: "123.exe"Единственное, {GUID} - {FFGH7029-84D7-4E1E-BE44-B0019BC54J9D} на разных компьютерах отличается, но в нем присутствует во всех случаях параметр с именем "OLGТ" по которому его и можно будет обнаружить.Путь до "OLGТ" в 64-х битной системе может быть такой HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{GUID}Спасибо за ответ. Ссылка на комментарий
D_Master Опубликовано 21 июня, 2012 Жалоба Поделиться Опубликовано 21 июня, 2012 Поменять значения FIND_VALUE и CONF_VALUE на их соответствующие значения. Если в значениях будет присутствовать кириллица, файл нужно сохранить в кодировке OEM-866.cls:start_batset REG_PATH=set REG_ROOT=HKEY_CLASSES_ROOT\set REG_DIR=CLSIDset FIND_KEY=OLGTset FIND_VALUE=123.exeset CONF_VALUE=123.exeif %PROCESSOR_ARCHITECTURE% == "x86" ( echo Windows Architecture: x86 set REG_PATH=%REG_ROOT%%REG_DIR%) else ( echo Windows Architecture: x64 set REG_PATH=%REG_ROOT%Wow6432Node\%REG_DIR%)echo.echo Looking for %FIND_KEY% key in %REG_PATH% directories and subdirectories...echo.for /f %%A in ('reg query %REG_PATH%') do ( @reg query %%A /v %FIND_KEY%>nul 2>&1 if errorLevel 1 ( echo .>nul ) else ( echo Key %FIND_KEY% was found in %%A echo Creating key Find with value "%FIND_VALUE%"... reg add %%A /v Find /t REG_SZ /d %FIND_VALUE% echo Creating key Conf with value "%CONF_VALUE%"... reg add %%A /v Conf /t REG_SZ /d %CONF_VALUE% echo. echo Finished pause exit ))echo Key %FIND_KEY% was not found in %REG_PATH% and its subdirectoriespauseexit@echo off Ссылка на комментарий
Alker Опубликовано 21 июня, 2012 Автор Жалоба Поделиться Опубликовано 21 июня, 2012 Не находит параметр "OLGТ", хотя он здесь: HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{FFGH7029-84D7-4E1E-BE44-B0019BC54J9D}Что может быть? Ссылка на комментарий
D_Master Опубликовано 21 июня, 2012 Жалоба Поделиться Опубликовано 21 июня, 2012 AlkerВ пути реестра пробел откуда-то взялся, нужно удалить.Добавлено спустя 1 минуту 19 секунд:set REG_ROOT=HKEY_CLASSES_ROOT\вот здесь Ссылка на комментарий
Alker Опубликовано 21 июня, 2012 Автор Жалоба Поделиться Опубликовано 21 июня, 2012 D_MasterОк, все работает!Спасибо большое! Ссылка на комментарий
Alker Опубликовано 22 июня, 2012 Автор Жалоба Поделиться Опубликовано 22 июня, 2012 D_MasterНа Windows 7 x32 ищет параметр в HKEY_CLASSES_ROOT\Wow6432Node\CLSIDнаверное потому что процессор 64х - битный. Ссылка на комментарий
D_Master Опубликовано 22 июня, 2012 Жалоба Поделиться Опубликовано 22 июня, 2012 Alkerзаменитеif %PROCESSOR_ARCHITECTURE% == "x86"наif not exist "%PROGRAMFILES(X86)%" Ссылка на комментарий
Alker Опубликовано 22 июня, 2012 Автор Жалоба Поделиться Опубликовано 22 июня, 2012 Ок. Спасибо! Ссылка на комментарий
qulq Опубликовано 6 декабря, 2014 Жалоба Поделиться Опубликовано 6 декабря, 2014 Решил не создавать новую тему, так как нужна помощь в создании похожего командного файла: 1. Необходимо определить по фрагменту имени раздела сам раздел и создать в нем запись.[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{d1663383-30f7-5235-9454-b757yU785638}] или [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{d1663383-30f7-5235-9454-b757yU785638}]а так же[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{d1663383-30f7-5235-9454-b757yU785638}] или [HKEY_CLASSES_ROOT\CLSID\{d1663383-30f7-5235-9454-b757yU785638}] в зависимости от разрядности системы. 2. Добавить в раздел {d1663383-30f7-5235-9454-b757yU785638} один строковый параметр - "List" со значением "123456789". Раздел существует, но проблема в том, что мне известен лишь фрагмент имени раздела {d1663383-30f7-5235-9454-b757yU785638} - yU7856Если использовать обычный поиск в системном реестре, то по фрагменту имени раздела легко найти весь путь, а вот как это реализовать в командном файле?Спасибо за ответ! 1 Ссылка на комментарий
D_Master Опубликовано 6 декабря, 2014 Жалоба Поделиться Опубликовано 6 декабря, 2014 (изменено) @echo offset hklm_path=HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSIDset hcr_path=HKEY_CLASSES_ROOT\CLSIDif exist "%PROGRAMFILES(X86)%" ( set hklm_path=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID set hcr_path=HKEY_CLASSES_ROOT\Wow6432Node\CLSID)call :JOB %hklm_path%call :JOB %hcr_path%call :EXIT:JOBset fname=%temp%\%RANDOM%.txtreg query %1 /f *ADDB8F*>%fname%for /f "tokens=*" %%v in (%fname%) do ( @reg add %%v /v List /t REG_SZ /d 123456789 /f):EXITdel %fname%clsecho Done...Ругань reg add на недопустимый путь (если убрать cls) связана с тем, что считывается весь аутпут команды reg query (хз как вычленить только пути реестра), но ничего страшного из-за этого не произойдет, и в случае, если будут найдены корректные пути, параметр будет добавлен.ADDB8F - часть имени раздела, звездочки не убиратьList - имя параметра12345679 - значение Изменено 6 декабря, 2014 пользователем D_Master 1 Ссылка на комментарий
qulq Опубликовано 6 декабря, 2014 Жалоба Поделиться Опубликовано 6 декабря, 2014 D_Master, спасибо!Командный файл не отрабатывает Ссылка на комментарий
D_Master Опубликовано 7 декабря, 2014 Жалоба Поделиться Опубликовано 7 декабря, 2014 Командный файл не отрабатываетВ реестре параметр добавляется? Ссылка на комментарий
qulq Опубликовано 7 декабря, 2014 Жалоба Поделиться Опубликовано 7 декабря, 2014 D_Master, спасибо! Да сам параметр добавляется, просто поиск происходит на умопомрачительной скорости, т.е. батник лишь мигнет и уже все добавлено. Аж верится с трудом! )) Ссылка на комментарий
D_Master Опубликовано 7 декабря, 2014 Жалоба Поделиться Опубликовано 7 декабря, 2014 Тогда не обращайте внимания на варнинги, я описал почему это происходит в первом сообщении Ссылка на комментарий
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти