Есть ли инструмент или метод, с помощью которого я могу искать в реестре Windows с помощью регулярных выражений?
5 ответов
Вы можете использовать PowerShell с -match:
dir HKCU:\ -rec -ea SilentlyContinue |
ForEach-Object {
if((get-itemproperty -Path $_.PsPath) -match "\wSomestring\w")
{
$_.PsPath
}
}
Это будет искать улей HKEY_CURRENT_USER .
Бесплатная утилита RegAlyzer выполняет поиск по подстроке, подстановочному знаку (* ,?), логическому (ИЛИ НЕ) и регулярному выражению:
RegAlyzer - это инструмент для просмотра и изменения реестра. Он был создан из-за нескольких функций, которые мы пропустили в оригинальном инструменте regedit, от поддержки экзотических типов значений по фону и поиска по регулярным выражениям до лучших закладок, отображения файлов .reg в привычном стиле и представления истории.

Если это просто вопрос поиска без изменения чего-либо (без поиска и замены), экспортируйте весь реестр в файл .reg и используйте ваш любимый текстовый редактор, который поддерживает регулярные выражения (Notepad++, Textpad, PSPad, ...).
Чтобы экспортировать весь реестр, щелкните правой кнопкой мыши узел «Компьютер» в редакторе реестра и выберите «Экспорт».
Осторожно, экспортированный файл может быть огромным. Я только что попробовал, и файл был 250 МБ.
Обновление кодировки: В WinXP file утилита cygwin сообщает об экспортированных данных в виде Unicode text, UTF-16, little-endian .
Вы можете использовать Cygwin.
Откройте терминал Cygwin и используйте эти команды:
cd /proc/registry32/HKEY_LOCAL_MACHINE
find . -name "*something*"
Даже reg.exe кажется, не поддерживает его, но это может помочь получить список для обработки с помощью других инструментов командной строки. Смотрите reg.exe query.
