Есть ли инструмент или метод, с помощью которого я могу искать в реестре 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
.