Перелічіть кожен окремий ключ реєстру в Windows


-1

Я намагаюся або знайти, або генерувати список усіх ключів реєстру, які існують у кількох версіях Windows. Я широко шукав в Інтернеті, не знаходячи жодного такого списку чи команди для рекурсивного генерування такого списку. Хтось знає, як отримати такий список?


@Ramhound - Не могли б ви пояснити це у формі відповіді? Якщо ви можете розмістити конкретні команди, я дуже вдячний. Дякую!
Kernel Stearns

blogs.technet.microsoft.com/heyscriptingguy/2012/05/11/… вам доведеться перерахувати, використовуючи цикл, як згадували пару інших людей. Посилання містить приклади того, як це зробити за допомогою PowerShell.
Тім Хайнц

Ви не могли просто скопіювати файли вулика?
DanHolli

@Kernel Stearns Чи не варіант, який можна compareзробити reg.exe?
Олексій

Якщо ви хочете текстовий документ із усіма шляхами, ключами, значеннями реєстру та ін. За допомогою текстового файлу, який ви можете відкрити, щоб переглянути деталі, то просто використовуючи стандартну функцію експорту regedit у файл .REG (який є текстом файл), а потім відкрийте його текстовим редактором і там ви переходите. Ви можете перейменувати розширення з .reg в .txt, якщо також хочете.
Pimp Juice IT

Відповіді:


2

Завдяки коментарю IT Solutions я знайшов відповідь на це. Нижче наведено код командного рядка:

reg.exe export HKEY_LOCAL_MACHINE C:\path\machine_registry.txt
reg.exe export HKEY_CLASSES_ROOT C:\path\local_registry.txt
reg.exe export HKEY_CURRENT_USER C:\path\current_registry.txt
reg.exe export HKEY_USERS C:\path\users_registry.txt
reg.exe export HKEY_CURRENT_CONFIG C:\path\config_registry.txt

1

з командного рядка:

reg.exe export HKLM\hardware hklm-hw.reg
reg.exe export HKLM\sam hklm-sam.reg
reg.exe export HKLM\security hklm-sec.reg
reg.exe export HKLM\software hklm-sw.reg
reg.exe export HKLM\system hklm-sys.reg

'' the same for HKCU branch
reg.exe export HKCU\folders hkcu-folders.reg

і так далі ... потім проаналізуйте те, що ви хочете, або скористайтеся compareопцією, щоб отримати різницю

Ви також можете використовувати WinMerge для порівняння та отримання diffміж знімками реєстру

Щоб зберегти весь реєстр у текстовому форматі, просто запустіть regedit.exeта експортуйте все з кореня реєстру.

Якщо ви хочете це зробити програмно, на це питання вже є відповідь: https://stackoverflow.com/q/6825555


Посилання переповнення стека - це питання, дуже схоже на моє, але ніхто ніколи не каже хлопцеві, чому його код не працює. Тому у мене є посилання на сценарій, який робить те, що я намагаюся зробити, за винятком того, що він не працює.
Kernel Stearns

Є офіційний API на ваш предмет msdn.microsoft.com/en-us/library/windows/desktop/…
Alex

1

Ви можете використовувати PowerShell!

Function ListSubkeys($rootKey) {
    Get-ChildItem -LiteralPath $rootKey -ErrorAction SilentlyContinue | % {
        $_.Name # Output the item's name
        ListSubkeys $_.Name # Recurse into its subkeys
    }
}
Push-Location $args[0]
ListSubkeys $args[0]
Pop-Location

Цей сценарій визначає рекурсивну функцію, ListSubkeysа потім викликає її. Щоб використовувати його, збережіть цей код як .ps1файл. Дотримуючись вказівок у розділі Включення скриптів у вікі тегів PowerShell , ви можете запустити його з відповідного запиту PowerShell, вказавши ім'я файлу та ключ запуску у форматі шляху PowerShell ( \важливе значення є трейлінг ):

.\regkeys.ps1 'HKLM:\'

Щоб надіслати вихід у файл, використовуйте >оператор перенаправлення, наприклад:

.\regkeys.ps1 'HKCU:\' > C:\Users\me\Documents\allmyHKCUkeys.txt

Зауважте, що HKCR насправді є комбінацією записів із місць у HKLM та HKCU, тому їх експорт був би неоднозначним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.