Автор: Сергій Голубєв
джерело: Upgrade
Системний реєстр ОС Windows XP - це об'єкт, в якому реєструються великі обсяги найрізноманітнішої інформації. Вперше він з'явився в Windows NT. Прообразом реєстру можна вважати ініціалізацій файли (INI-файли). Саме в них розробники ПЗ почали зберігати різного роду дані, що визначають конфігурацію утиліт. До речі кажучи, багато хто до цих пір не відмовилися від старих методів: мабуть, не хочуть зв'язуватися з реєстром.
Таким чином, розробники до цього нововведення Microsoft ставляться неоднозначно. Дехто навіть називає реєстр "чорним ящиком". Зрозуміло, доводів на користь реєстру нітрохи не менше. Ось головний з них: він зручний для користувача. Хоча і не завжди.
Проілюструвати це найпростіше прикладом з настройками популярного файлового менеджера FAR. Як відомо, він вміє запам'ятовувати адреси FTP-серверів, щоб користувачеві не доводилося вводити їх кожен раз вручну. Адреси ці зберігаються в реєстрі. Таким чином, користувачеві не складе ніяких труднощів знайти ці посилання і при необхідності підредагувати їх параметри вручну.
І не треба нишпорити по всіх каталогах в пошуках налаштувань. Тобто це безсумнівний плюс, бо окремий файл конфігурації може перебувати де завгодно (а у сучасних розробників фантазія багата, так що розвідзаходи часто займають багато часу). Однак, між іншим, ви забули зробити копію потрібної галузі реєстру, і тоді після форматування розділу і повторної установки системи посилання вам доведеться відновлювати всі потрібні параметри по пам'яті. Цього можна було б уникнути, якби настройки програми зберігалися в окремому файлі, розташованому де завгодно, хоч на іншому розділі диска (і при перевстановлення системи вони спокійно залишилися б там, де були).
Безумовно, сама компанія Microsoft рекомендує стороннім розробникам зберігати всю інформацію про їх програмах в реєстрі. Благо в Windows XP ніяких обмежень на його розмір не передбачено. Тому, до речі, в реєстрі накопичується дуже багато сміття, яке необхідно час від часу викидати.
Тут ми приходимо до дивного висновку: як не роби, все одно буде не так. Ніхто в цьому не винен, ні Білл Гейтс, ні Стів Баллмер. Просто вони люди. Такі ж, як і ми з вами. Найменша амеба виглядає так, що вражає нашу уяву сильніше, ніж сама химерна авангардна картина, і влаштована куди більш раціонально, ніж найкраща програма. Але той, хто створив амеб, не займається написанням софта. Тому будемо вивчати те, що є, або чекати, коли обломиться грант, на який можна буде жити розкошуючи, споглядаючи в мікроскоп щось більш цікаве, ніж якийсь реєстр якийсь операційної системи.
Як він влаштований
Системний реєстр являє собою ієрархічну базу даних, в якій зберігаються всілякі відомості про компоненти операційної системи і прикладних програмах. Головна його особливість полягає в тому, що містяться в ньому дані можуть мати різний формат. У текстовому файлі, наприклад, все це тримати не вийде.
Концепція, закладена в основу побудови реєстру, має незвичайну назву: "принцип селекції реєстру за допомогою кущів". Це означає, що кожна область пам'яті призначена для зберігання певного типу даних. При цьому різні користувачі не можуть використовувати дані один одного, якщо тільки вони самі не заявили про готовність "жити колгоспом". Замість терміна "кущ" досить часто вживають абревіатуру HKEY (handle to a key). Це неправильно, оскільки кущ - окремий компонент файлу або область пам'яті.
А HKEY, як випливає з її розшифровки, - дескриптор розділу, який вказує на інструмент, за допомогою якого надається доступ до даного рівня реєстру. Якщо ж слово "кущ" викликає у вас неприємні асоціації, то можете замість нього використовувати термін "вулик" (hive), поширений в англомовній документації. Кущ складається з розділів, підлеглих розділів і параметрів, а також має коріння на верхньому рівні ієрархії реєстру.
В системі Windows 98 реєстр зберігався в двох файлах (SYSTEM.DAT і USER.DAT), а ось Windows XP влаштована набагато складніше. У ній вже не зробиш резервні копії реєстру, зберігши лише два вищезгаданих файлу. Втім, реєстр в Windows XP організований куди логічніше: практично кожен кущ є файлом, його можна переміщати і редагувати. Кущі реєстру, до яких система звертається найчастіше, розташовані в такий спосіб:
кущ HKEY_LOCAL_MACHINE \
System - файл Windows \ system32 \ config \ system;
кущ HKEY_LOCAL_MACHINE \ SAM - файл Windows \ system32 \ config \ sam;
кущ HKEY_LOCAL_MACHINE \ Security - файл Windows \ system32 \ config \ security;
кущ HKEY_LOCAL_MACHINE \ Software - файл Windows \ system32 \ config \ software;
кущ HKEY_CURRENT_USER - файл <профіль користувача> \ ntuser.dat;
кущ HKEY_CURRENT_CONFIG - файл Windows \ system32 \ config \ system;
кущ HKEY_USERS \ .DEFAULT - файл Windows \ system32 \ config \ default.
Крім основних файлів, до реєстру відносяться допоміжні, які мають розширення LOG, ALT і SAV. LOG-файл містить список змін, які були зроблені користувачем в певному кущі за останній сеанс роботи. ALT-файл - це резервна копія куща HKEY_LOCAL_MACHINE \ System, яка використовується системою Windows для відновлення працездатної конфігурації. Нарешті, в SAV-файлах зберігається зміст кущів на момент запуску ОС (тільки ntuser.dat не має такого файлу). Вони потрібні системі для того, щоб після збою відновлювати вдалі параметри.
Реєстр є однією з головних складових частин Windows XP. У ньому містяться не тільки параметри програмних і апаратних компонентів системи, але і відомості про неї. Іншими словами, за допомогою реєстру можна відредагувати практично всі. Тому структура його досить складна. Якби він не перебував з розділів, а являв собою єдиний інформаційний масив, то реально користуватися ним вміли б лише справжні гуру. До речі, кущі та розділи - це зовсім не одне і те ж. Кущі - це файлові складові розділу, які при завантаженні системи збираються в єдину деревоподібну структуру.
На наше щастя, Microsoft завжди думає про простих користувачів. І це зовсім не іронія: якщо у компанії не все виходить так, як нам хотілося б, то виною тому обставини, про які я розповів на початку статті
Розділ HKEY_CLASSED_ROOT є призначеним для користувача. Може бути, саме тому з ним завжди досить складно працювати. Тут містяться дані про модель багатокомпонентних об'єктів (Component Object Model, або COM), а вона лежить в основі технології ActiveX. Під компонентом в даному контексті я маю на увазі все що завгодно, від найпростішого текстового файлу до низкоуровневого об'єкта. Саме тут знаходяться записи про типах файлів і асоційованих з ними додатках.
Одні записи містять інформацію про розширення імен файлів. Причому, оскільки Windows XP підтримує довгі імена, в реєстрі задаються типи розширень, що складаються більш ніж з трьох символів. Також ці записи вказують на певні операції, які можуть виконуватися з файлами того чи іншого типу. Інші записи визначають програми, які використовуються для відкриття файлів різних типів. У загальному випадку компоненти розширення можуть описувати будь-які елементи, які виконують спеціальні операції. Але зазвичай вказується тільки додаток, що викликається для відкриття файлів певного типу за замовчуванням. Також тут перераховані додатки, які є для даного типу додатковими. Наприклад, можна визначити, які саме пункти знаходитимуться в контекстному меню, що викликається кліком правої кнопки миші по іконці, що асоціюється з конкретним типом файлу.
Розділ HKEY_CURRENT_USER присвячений налаштувань програмного забезпечення, відповідним поточного облікового запису. Саме тут знаходиться інформація, яка визначає параметри роботи меню "Пуск", конфігурацію "Робочого столу" і колірні схеми інтерфейсу. Дані часто оновлюються, і ось за якою схемою: з призначеного для користувача розділу HKEY_USERS в HKEY_CURRENT_USER копіюються записи, мінливі в процесі роботи, причому остаточний варіант зберігається в HKEY_USERS по завершенні сеансу.
Завдання, виконання яких служить даний розділ, такі, що всі його компоненти повинні бути гранично інформативні. Однак істотного впливу на операційну систему вони не роблять. Практично всі зміни в даний розділ вносяться не безпосередньо, а через додатки або системну "Панель управління".
Розділ HKEY_CURRENT_USER складається з підрозділів. Деякі з них використовуються досить часто, інші - від випадку до випадку. Підрозділ AppEvents включає в себе перелік можливих подій, що відносяться до додатків. Зокрема, там описуються звукові ефекти. За командні запити відповідає підрозділ Console. Його вміст модифікується безпосередньо, графічних утиліт для його конфігурації немає. Хоча і редагувати там особливо нічого, навряд чи варто морочити собі голову розміром курсору або видом нестандартного шрифту.
Важливий підрозділ - Control Panel. У ньому знаходяться записи всіх додатків "Панелі управління", що дозволяють вносити зміни в параметри роботи комп'ютерного середовища, тобто задавати регіональні стандарти, режими роботи миші і клавіатури і т. Д. Однак опції, пов'язані із застосуванням спеціального програмного забезпечення, в даному підрозділі далеко не завжди присутні. Інтернетчикам варто ближче познайомитися з підрозділом Identities, де зберігається перелік всіх ідентифікаторів Мережі та їх параметри. Зокрема, тут розташований список заблокованих користувачів.
Абонентам локальних мереж знадобляться підрозділи Network і Printers. У них знаходяться переліки всіх мережевих дисків і принтерів. А списки використовуваних даним користувачем мережевих з'єднань зберігаються в підрозділі RemoteAccess. Нарешті, підрозділ Software. Як неважко здогадатися, саме тут розташовується список всіх програм, що застосовуються в системі, а також їх налаштувань. Software розбитий на безліч подраздельчіков - по одному на кожного постачальника використовуваного ПО.
Коль скоро ми згадали про розподіл HKEY_USERS, розберемося з ним. У ньому перераховані користувачі, які мають доступ до реєстру. Очевидно, що коригувати більшу частину розташованої в ній інформації марно, вона все одно оновлюється з HKEY_CURRENT_USER. Так що використовується даний розділ тільки для зміни облікових записів неактивних користувачів.
У розділі HKEY_LOCAL_MACHINE зберігається інформація про апаратні засоби системи і про їх застосування. Перше, що треба зробити, якщо залізяка не працює, - це подивитися, чи є про неї відомості в даному розділі. Якщо немає, то далі шукати нема чого: даний девайс працювати не буде. Зрозуміло, саме тут можна знайти інформацію про всі драйвери, включаючи номер версії кожного з них. Втім, вважати цей розділ повністю "залізним" не можна: в ньому містяться основні системні параметри, що мають відношення до всіх користувачів. Таким чином, додатки, які використовуються усіма користувачами, неодмінно залишать тут свій слід.
Окрема тема - дані систем безпеки. У відповідний розділ варто заглянути кожному власнику системи Windows XP Home Edition, заздрять тим, хто купив професійну версію, але не бажає розорятися на її придбання (і нічого сміятися, відомості про те, що всі російські отоварюються виключно у піратів, не відповідають дійсності).
Професійна версія не так вже сильно відрізняється від домашньої. Наприклад, "професіонал" має доступ до параметрів, що дозволяє налаштувати режим забезпечення безпеки, а "домовик" - немає. Однак самі ці параметри присутні і в тій, і в іншій ОС. Тільки в домашній версії вони приховані від людських очей.
Наприклад, ми хочемо швидко змінити налаштування безпеки для гостьового входу. Йдемо в HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \
Control \ Lsa і знаходимо там параметр Forceguest. А далі все просто: якщо його значення дорівнює нулю, то функція неактивна, а якщо одиниці, то навпаки. Включаємо відповідний режим, і всі локальні параметри забезпечення безпеки як на долоні. Якщо вирішите ними скористатися, то будьте акуратніше. Постарайтеся, так би мовити, обійтися без фанатизму. А то прикриєте доступ всім, кому можна і кому не можна.
Якщо попередній розділ зазвичай буває дуже великим, то в порівнянні з ним HKEY_CURRENT_CONFIG - це ліліпут. У ньому всього два підрозділи: Software і System. Що зберігаються в них записи використовуються для того, щоб настроїти дисплей і принтер. Також в даному розділі містяться деякі допоміжні мережеві параметри.
Підрозділ Software складається з двох частин: Fonts і Microsoft. Якщо призначення першої ясно з її назви, то в другій зберігаються так звані Internet Settings, параметри функції автоматичного набору телефонного номера і опис способів використання локальних пристроїв для виходу в інтернет.
У підрозділі System знаходяться параметри принтера, звукових і відеопристроїв. Саме цей підрозділ містить параметри роботи API Microsoft DirectSound. У ньому ж настройки джерела безперебійного живлення. І, зрозуміло, в System зберігаються відомості про дозволи відеокарти.
Як з ним працювати
Штатний засіб системи Windows для роботи з реєстром так і називається - "Редактор реєстру". Запустити його можна командою regedit. Природно, в меню "Пуск" ця програма відсутня: в Microsoft вважають, що більшості користувачів немає ніякої потреби редагувати реєстр вручну. Якщо ви дотримуєтеся іншої думки, а кожен раз викликати "Редактор реєстру" через "Пуск"> "Виконати" вам лінь, то меню слід підредагувати. Для цього натискаємо по "Пуску" правою кнопкою і в списку, що з'явився вибираємо "Провідник". Нас цікавить папка Documents and Settings \ <Користувач> \ Головне меню \ Програми. Для того щоб додати в неї кнопку запуску "Редактора реєстру", натискаємо правою кнопкою миші по порожньому місці в правому фреймі, вибираємо "Створити ярлик" і знаходимо програму regedit.exe в каталозі Windows. Після додавання натискаємо на "Пуск", ось і все.
При запуску "Редактора реєстру" з'явиться вікно, що віддалено нагадує стандартний "Провідник" системи Windows. У лівому його фреймі знаходяться назви розділів, підрозділів і параметрів, а в правому - їх значення. Як я говорив на початку статті, головне достоїнство реєстру полягає в тому, що він об'єднує дані різних форматів, або, як це прийнято говорити стосовно до реєстру, різні типи даних.
Тип REG_SZ (String) являє собою звичайну рядок тексту, тобто послідовність символів. Цей рядок завжди повинна закінчуватися нульовим символом. Тип REG_BYNARY (Bynary) - необроблені двійкові дані. У цьому форматі зберігаються майже всі відомості про устаткування системи, причому "Редактор реєстру" дану інформацію виводить на екран в шістнадцятковому форматі. Тип REG_DWORD (DWord) - це дані, які є цілим числом в діапазоні від 0 до 4 294 967 295. "Редактор реєстру" може відображати їх в довічним, десятковому або шістнадцятковому форматі. Такий вид зазвичай мають параметри служб і драйверів. Тип REG_MULTI_SZ (Multi-String) - багаторядковий текст. Зрозуміло, що інформацію в такому форматі користувачеві сприймати легше. Символом, що позначає кінець рядка в REG_
MULTI_SZ, є "0" (нуль).
Змінні, які обчислюються будь-якою програмою або службою, належать до типу REG_EXPAND_SZ (Expandable String). Цей тип визначає рядок змінної довжини. Необхідність в таких даних пояснюється тим, що користувач має певну свободу формування файлової системи і т. Д. Зокрема, змінна% ProgramFiles% задає розташування відповідного каталогу, а його повне ім'я може бути, в принципі, яким завгодно. Нарешті, унікальний тип REG_FULL_RESOURCE_DESCRIPTION є послідовність вкладених масивів і використовується для зберігання повного списку ресурсів всіх драйверів.
Стандартний "Редактор реєстру" не тільки дозволяє вручну виправити будь-який параметр, але і має мінімальний набір інструментів, корисних в певних ситуаціях. Йдеться в тому числі про можливість імпорту-експорту даних. Ці функції бувають затребувані в тому випадку, якщо ви проводите експерименти над системою або перевстановлюєте Windows після форматування розділу (не треба зверхньо ставитися до такого методу лікування "недуг" ОС, часом набагато легше і швидше перевстановити систему, ніж розбиратися з неполадками) .Експортіровать можна як весь реєстр, так і окрему його гілка. Розглянемо кілька типових випадків, в яких створення копій є виправданим. Припустимо, ви скачали умовно безкоштовну програму і перед тим, як придбати повну версію, хочете оцінити її функціональність. Очевидно, що двох-трьох днів для цього явно недостатньо, а от місяці якраз вистачить. Перед установкою софтина варто зробити копію всього реєстру (радикали запропонують вам також виготовити образ системного розділу, але це, на мій погляд, перебір). Копія потрібна на той випадок, якщо вас раптом відправлять у відрядження, причому рівно на місяць.
Ві повертаєтеся, хочете продовжіті знайомство з програмою, а вона вам ввічліво сообщает: так и так, период безкоштовної ЕКСПЛУАТАЦІЇ Закінчився. Повторна установка після видалення софтина ні до чого доброго не призведе, оскільки десь в реєстрі залишився запис про те, коли вона була вперше проінстальована. Звичайно, можна спробувати видалити всі згадки про цю програму вручну, потрібно тільки скористатися функцією пошуку (через "Редактор реєстру"). Але найпростіше відновити старий реєстр цілком з заздалегідь зробленої копії. Тим більше, що поки ви були у відрядженні, навряд чи в реєстрі з'явилося щось корисне.
Другий випадок найзручніше проілюструвати на прикладі файлового менеджера FAR. Звичайно, добре, коли сторонні розробники прислухаються до порад Microsoft і використовують реєстр. Якщо ж ви хочете зберегти всі налаштування після переустановлення системи, то вам треба вжити всіх необхідних для цього заходів. Для цього відкриваємо "Редактор реєстру" і знаходимо гілку HKEY_CURRENT_USER \ Software \ Far, в ній зберігається все, що має відношення до даного додатку. Ми можемо зберегти її цілком або тільки якусь її частину. До речі, цікавий для нас список FTP-серверів знаходиться тут: HKEY_CURRENT_USER \ Software \ Far \ Plugins \ FTP \ Hosts.
В результаті експортування вийде файл з розширенням REG. Це звичайний текстовий файл, який можна переглядати і редагувати в "Блокноті". До речі, деякі користувачі віддають перевагу саме такий спосіб роботи з реєстром: вони експортують гілку, редагують збережений файл і імпортують його назад до реєстру.
Зрозуміло, експортувати гілку реєстру слід перед тим, як ви збираєтеся щось в ній змінити. Даний захід є обов'язковою. Адже чим відрізняється професіонал від дилетанта?
Передбачливістю. Один постійно твердить: "Знати б, де впадеш!" - а інший мовчки стелить соломку. А падають і той, і інший однаково часто.
У кожного користувача є улюблені гілки реєстру, ті, які він редагує найчастіше. Щоб отримати швидкий доступ до них в "Редакторі реєстру", слід помістити посилання в "Вибране".
Наостанок трохи про безпеку. Якщо вашою машиною користується ще ряд осіб, то неодмінно виникне питання про розмежування прав доступу до файлів реєстру. Щоб вирішити дану проблему, зайдіть в розділ "Редагування"> "Дозволи" (в "Редакторі реєстру"). За замовчуванням встановлено параметри безпеки, оптимальні в загальному випадку. Але де ви на практиці зустрічали цей самий "загальний випадок"? Де завгодно, тільки не на своїй машині.
Тому сміливо обмежуйте в правах тих, кого слід, і розширюйте можливості того, кому належить. Тільки пам'ятайте, що відповідно до прийнятої в Windows концепцією безпеки заборона має пріоритет перед дозволом. Це я знову про фанатизм, якого слід уникати. Особливо при роботі з таким складним інструментом, яким є системний реєстр.
Registry Toolkit
Набір утиліт під загальною назвою Registry Toolkit призначений для тих, хто не хоче морочитися вивченням реєстру, а бажає отримати інструмент, що дозволяє виконувати кілька простих і корисних операцій. Перш за все дефрагментацію. Суть цієї процедури полягає в тому, що реєстру надається лінійна структура, яку він втрачає за час експлуатації. "Розбухання" призводить до уповільнення роботи системи в цілому, тому слід періодично приводити його в порядок.
Друга функція цього пакета, що має відношення до реєстру, дозволяє робити резервні копії і відновлювати з них реєстр. Необхідність цієї функції розглянуто в статті, так що не стану повторюватися. Проживає ця програма за адресою antispy4you.com/index.php?adv=padrdefrag , Звідки її і можна скачати. До речі, вона русифікована. Однак безкоштовно користуватися пакетом можна тільки три тижні. Потім доведеться розоритися на $ 11,95.
Програма jv16 PowerTools 2005
Ця програма для роботи з реєстром, яка мешкає за адресою www.macecraft.com/jv16powertools2005 , Була однією з найпопулярніших в Росії. Її значному поширенню на пострадянському просторі дуже сприяла її ціна: з нас, бідних і нужденних, розробники грошей не брали. Але окремі співгромадяни, замість того щоб всіляко підтримувати свою репутацію, кинулися купувати футбольні клуби. І ось результат: тепер jv16 PowerTools коштує $ 29,95. Для всіх без винятку. Прошу зрозуміти мене правильно. Мені грошей не шкода, за державу обидно.
А програма дійсно хороша. Особливо тим, що пропонує користувачеві масу корисних можливостей, таких як чистка реєстру, звичайний пошук або пошук з автоматичною заміною. Освоїти jv16 PowerTools 2005 по силам навіть користувачеві, що має віддалене уявлення про внутрішній устрій реєстру. Скажімо, для редагування пунктів контекстного меню "Відкрити за допомогою ..." не треба залазити в реєстр: програма сама визначить зареєстровані додатки, виведе на екран їх повний список, з якого користувач зможе виключити свідомо неактуальні програми.
До того ж jv16 PowerTools 2005 вміє не тільки працювати з реєстром, а й виконувати деякі інші операції, зокрема, переносити папки і знаходити дублікати файлів. Запускати будь-яке завдання можна як вручну, так і за розкладом.
RegWorks
RegWorks - це справжнісінький альтернативний редактор. Чесно кажучи, коли виникає необхідність попрацювати з реєстром, особисто я не запускається regedit.exe, а дану програму. Головним чином тому, що по інтерфейсу ці утиліти схожі. Тобто автор RegWorks Євген Лоскутов (я завжди говорив, що наші програмісти найкращі в світі) вирішив не морочити голову знайомим з Regedit користувачам: ніякого часу на освоєння тих можливостей програми, які підтримує стандартний інструмент, не потрібно. Тому проблеми переходу зі штатного редактора на альтернативний просто не виникає.
Дві фірмові фішки RegWorks - монітор реєстру і довідкова система. Монітор дозволяє практично в реальному часі (раз в 400 мілісекунд) фіксувати всі зміни, що відбуваються в реєстрі. Це дуже корисно не тільки коли ви встановлюєте нові програми, але і коли хочете постійно проводити діагностику системи на предмет вірусного зараження (погодьтеся, зайвий контроль ніколи не завадить). Гнучка система фільтрів дозволяє не тільки бачити весь реєстр як на долоні, але і відловлювати конкретні зміни.
Довідкова система програми - це дуже компактний інтерактивний мануал по реєстру. Корисність його важко переоцінити. Припустимо, ви приблизно знаєте, чого саме хочете домогтися, але не знаєте, що при цьому треба поміняти в реєстрі. За допомогою програми RegWorks завдання вирішити просто. Знаходьте в довіднику необхідну вам інформацію, вивчаєте теоретичну частину і прямо з документа переходите в потрібне місце реєстру.
Програма повністю русифікована і поширюється безкоштовно. Хоча в останньому я не зовсім впевнений. Справа в тому, що англомовний сайт http://www.regwrks.com/ посилається на http://www.regwrks.ru/ . Той же самий адреса вказана і в розділі "Про програму", що викликається за панелі управління софтина. Але російський сайт чомусь недоступний. Англійською ж сказано, що програма коштує 30 американських доларів. Хоча на російських софтових порталах вона проходить як freeware. Як би там не було, я користуюся RegWorks досить давно, і ніяких грошей вона не просіт.Найті програму в Мережі досить просто. Завантажити її можна хоча б звідси:
www.listsoft.ru/programs/16684/?fileid=2 .
Але де ви на практиці зустрічали цей самий "загальний випадок"?
Php?
Ru/programs/16684/?