Сохранность Registry своими руками
Хабрахабр
http://habrahabr.ru/post/142558/
...Недавно пострадал от потери NTUser.dat и с ним всего HKCU под Windows7 да так,
что Windows Restore не помог — пришлось подниматься из бакапа месячной давности.
В результате сильно озаботился вопросом резервирования реестра. Как выяснилось, Win7/Vista никакого резервирования «чисто» реестра (в отличии от XP) не предлагают. В этом посте расскажу о том, что можно сделать своими руками по этому поводу с помошью утилиты ERUNT и User Profile Hive Cleanup Service (UPHClean).
В завершение привожу пример того, как это сделал я.
Историческая справка.
Registry, каким мы его знаем, впервые появился в Win95, и сразу стало понятно, что терять/портить его не стоит. Благо, в OC семейства Win9x реестр автоматически бекапился при старте системы. При этом держалось от двух (Win95) до пяти (Win98/ME) уровней отката. Ручной бакап тоже не представлял проблем, т.к. достаточно было перегрузить компьютер в DOS-режиме и скопировать несколько файлов в безопасное место. Также Microsoft предоставляла утилиту ERU, которая бакапила реестр прямо из Windows.
С приходом Win2000 и ее производных (WinXP/Vistal/7) ситуация изменилась в корне. В системах на основе NT файлы Registry (C:\Windows\System32\Config и %userprofile%\ntuser.dat) всегда открыты и используются. В итоге стали проявляться неприятные баги, некоторые из которых встречаются и по сей день. Почти все они являются последствиями одного сценария: какая-то программка открывает ключ в Registry и забывает его закрыть. В результате, может происходить ряд интересных побочных эффектов:
* Во-первых, если не закрыт ключ в HKCU, logoff\перезагрузка/выключение компьютера может занять оооооочень много времени — Windows терпеливо ждет, пока все программы освободят HKCU, чтобы отлогинить пользователя (чего не происходит, если глючная программка прописана как системный сервис).
* Во-вторых, некоторые изменения так и не «сбрасывались» в реестр, и в итоге не сохранялись после перезагрузки. Особенно сильно это напрягало корпоративных пользователей с Roaming профайлами, которым зачастую приходилось, к примеру, каждый раз наблюдать сообщение «Please wait while Windows configures <программка>» при запуске какого-нибудь офисного приложения. В результате в Vista/W7 мы имеем файлы транзакций реестра (regtrans-ms), которые иногда занимают больше места, чем сами файлы реестра 
* В худшем случае при перезагрузке нарушалась целостность реестра и можно было лишиться хайва целиком (чаще всего, опять же, HKCU). Это, кстати, продолжается по сей день, довольно много шума поднимается по поводу сервиса обновляющего Google Chrome, который любит открывать много дескрипторов и забывает закрывать некоторые из них.
Проблема была настолько серьезной, что Microsoft выпустила специальный сервис "User Profile Hive Cleanup Service", который насильно отключает всех от registry при перезагрузке (правда, только для HKCU/ntuser.dat).
Все это показало насколько целостность реестра критична для систем на базе WinNT. Тем не менее,
В NT/2000 вообще нет автоматического бакапа реестра.
В WinXP бакап реестра производится только в процессе общего
резервирования системы (если выбрать Backup System State).
При этом файлы ОС (~500MB) кладутся в указанный пользователем каталог, а резервная копия реестра оказывается в C:\Windows\Repair, откуда ее надо скопировать ручками (ну, или удалить 500М барахла, если вам нужно было забакапить только реестр). К сожалению, графический интерфейс Windows не позволяет выбирать подкаталоги в NUL 
В Vista/W7 бакап производится в VHD всего целиком;
System Restore, как выяснилось, недостаточно надежен,
а \Windows\Repair нет впомине.
Зато есть аналогичный ему \Windows\System32\Config\RegBack,
который обновляется раз в 10 дней силами Task Scheduler'a.
х==================================
Спасибо добрым людям из комментов.
(По умолчанию в Windows 7 реестр копируется каждые 10 дней в папку %WinDir%\System32\Config\RegBack, смотрите в планировщике задачу Microsoft\Windows\Registry\RegIdleBackup.)
х==================================
Правда, там только системный реестр.
Другого простого способа бакапить реестр не было,
и его пришлось придумать.
Так появилась ERUNT (ERU для NT).
=
ERUNT.
ERUNT была разработана немецким специалистом по имени Lars Hederer, и, собственно, резервирует реестр любой WinNT-подобной ОС (NT/2K/2K3/XP/Vistal/7) в заданный каталог «по-живому» (т.е. не при перезагрузке, а в любое время в процессе работы ОС).
Подробности применения можно почитать в файле readme, я же расскажу о том, чем она понравилась лично мне, и как я ее использую...
- Подпись автора
=