Перейти к содержанию

Создание командного файла для поиска параметра в реестре [Решено]


Рекомендуемые сообщения

Здравствуйте!

Возник вопрос.

Необходимо создать командный файл или 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}

Спасибо за ответ.

Ссылка на комментарий

Поменять значения FIND_VALUE и CONF_VALUE на их соответствующие значения. Если в значениях будет присутствовать кириллица, файл нужно сохранить в кодировке OEM-866.


cls
:start_bat
set REG_PATH=
set REG_ROOT=HKEY_CLASSES_ROOT\
set REG_DIR=CLSID
set FIND_KEY=OLGT
set FIND_VALUE=123.exe
set CONF_VALUE=123.exe

if %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 subdirectories
pause
exit
@echo off

Ссылка на комментарий
  • 2 года спустя...

Решил не создавать новую тему, так как нужна помощь в создании похожего командного файла:

 
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
Ссылка на комментарий

@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 - значение

Изменено пользователем D_Master
  • Нравится 1
Ссылка на комментарий

D_Master, спасибо! Да сам параметр добавляется, просто поиск происходит на умопомрачительной скорости, т.е. батник лишь мигнет и уже все добавлено. Аж верится с трудом! ))

Ссылка на комментарий

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...