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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как и где из реестра считать путь к папке ...\System32\ (http://forum.oszone.net/showthread.php?t=181660)

Drongo 28-07-2010 21:31 1462462

Как и где из реестра считать путь к папке ...\System32\
 
Приветы. :) Вопросов два.

1. Как экспортировать две\три или любое произвольное количество веток реестра в один лог-файл Registry.log. Так я могу сохранить одну ветку
Код:

Reg EXPORT "HKHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" "Registry.log" >nul
А как в этом же Registry.cmd дописать ещё такую же команду резервирования, но для другой ветки, чтобы в итоге обе разные ветки попали в один лог. К примеру я хочу добавить ещё эту ветку
Код:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
2. Как и где из реестра можно со 100% гарантией считать имя папки ...\System32\. Я слышал, что в ооочень редких случаях вместо system32 может быть что-либо другое.
Сразу оговорюсь, стандартные ветки, где находятся ключ userinit.exe и т.п, различные службы, чтобы по файлу svchost.exe узнать имя папки - отпадает, вирус может сохранить свой файл с таким же именем в другую папку.

%WinDir% - нам вернёт папку к каталогу Windows. Вариант с конкатенацией, не выход, потому что как уже упоминал, может быть что-то эксзотичное вместо System32
Код:

%WinDir% + 'System32\'
Спасибо.

deepred 28-07-2010 22:36 1462486

Drongo,

Код:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows
Параметр    : SystemDirectory
Значение    : %SystemRoot%\system32
Тип          : REG_EXPAND_SZ

Код:

echo off

set Rkey1="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion"
set Rkey2="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows"

for /f "tokens=2 delims==" %%a in ('set Rkey') Do ^
Reg Query "%%a" >> reg.log"
pause


Drongo 28-07-2010 23:48 1462541

1. Вопрос решён. Спасибо. :up:

Можно ли расшифровку этого скрипта? Хочется понимать его работу. :)
Цитата:

Цитата deepred
Код:

echo off
set Rkey1="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion"
set Rkey2="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows"
for /f "tokens=2 delims==" %%a in ('set Rkey') Do ^
Reg Query "%%a" >> reg.log"
pause

»

Он в принципе работает, только только имена веток, без их параметров
Код:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Applets
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Controls Folder
...
...
...
И т.д.


deepred 29-07-2010 00:28 1462563

Drongo,

Цитата:

Цитата Drongo
Он в принципе работает, только только имена веток, без их параметров »

да-да, моя ошибка... В коде при использовании команды REG QUERY следует
применить ключ /s (для вывода всех вложенных подразделов и их параметров)

Код:

Echo off & Chcp 1251
Echo off - отключение вывода команд на экран консоли
Chcp 1251 - переключение на кодовую страницу ANSI - "кириллица"



set - установка в качестве переменных разделов реестра
Код:

set Rkey1="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion"
set Rkey2="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows"



выполнение команды Reg Query для каждого аргумента входящего в набор
Код:

for /f "tokens=2 delims==" %%a in ('set Rkey') Do ^
'set Rkey' возвращает все установленные переменные содержащие в имени "Rkey", но
возвращает она их в виде "Rkey2="HKEY_LOC..." и поэтому разделителем (delims) определяем
символ "=" и извлекаемой подстрокой (tokens) подстроку номер 2. Эта подстрока и будет
определена переменной %%a, которая и является аргументом (именем раздела) для REG QUERY.




Код:

Reg Query "%%a" /s  >> reg.log
pause

>> reg.log - запись вывода команды REG QUERY в файл, причем каждый новый вывод дописывается
в конец файла.

Drongo 29-07-2010 14:17 1462854

deepred, Спасибо, вопрос решён. Если что будет неясно, я ещё спрошу. :)


Время: 09:47.

Время: 09:47.
© OSzone.net 2001-