Адміністрування системного реєстру Win9x/nt/2000
Серед багатьох типів програм , розроблених під ОС Windows , важливе місце посідають утиліти – це спеціальні програми , що спрощують і, в деякій мірі, полегшують роботу з операційною системою. До утиліт відносять архіватори , спеціальні програми для роботи з дисками , аудіо та відео тощо. Чи ненайважливіше місце у групі утиліт посідають програми для так званої “тонкого” адміністрування операційної системи.
У своїй роботі ці програмні продукти використовують системний реєстр операційної системи Windows. Системний реєстр це набір кількох файлі в (user.dat, system.dat та інші ), в яких зберігаються всі параметри налаштування як самої операційної системи , так і встановленого на машині програмного та апаратного забезпечення . Переглянути вміст системного реєстру можна за допомогою утиліти Regedit (для ОС Win9x/ME) або Regedit32 (WinNT/2K).
Реєстр «виріс» з .ini-файлів, що з'явилися в часи Windows 1.0. Тоді всі параметри і значення, що визначають роботу операційної системи (ОС), зберігалися в.ini-файлах, у тому числі параметри переривань принтера і каталоги збереження тимчасових файлів текстових редакторів. Але Windows 3.0 мала централізовану базу даних для такого роду інформації — реєстр, хоча і використовували, проте не дуже інтенсивно. З часом постачальники апаратного і програмного забезпечення почали пристосовуватися для збереження важливої інформації в реєстр, що прийшов на зміну не впорядкованим ini-файлам. У версіях Windows 3.1 і 3.11 реєстр у більшій мірі інтегрований з системою. З появою Windows NT реєстр перетворився у сховище більшості даних. Версії WindowsNT, що вийшли одна за одною 3.5, 3.51 і 4,0 вже сильно залежали від реєстру, а їх інструменти керування поступово покращилися. Переваги централізованої бази даних для збереження й обробки мінливої системної інформації очевидні. Уже не має потреби в нескінченних пошуках по всій системі і мережі ( чи бачили Ви коли-небудь .ini-файл на загальному мережному диску?) за невловимим параметром, що тормозить роботу Вашого комп'ютера.
Резервну копію реєстру можна зробити різними способами. Корпорація Microsoft пропонує досить громіздку програму Rdisk.exe. У Microsoft Resource Kit також багато інструментів для керування реєстром. Я частенько заглядав у нього щоб розібратися, що саме «NT-подібна» система чи елемент реєстру намагається зробити чи робить.
На сьогодні реєстр — найкращий інструмент для зміни параметрів конфігурації, заданих постачальником апаратного чи програмного забезпечення. Ви хочете отримати довідсоткову продуктивність. Ваш кращий друг — regedt32.exe. Та й для створення і поширення користувальницьких конфігурацій на великій кількості станцій, інструменту, зручніше реєстру, не знайти.
Взагалі ж системний реєстр складається з таких віток :
Розділ HKEY_LOCAL_MACHINE
У розділі HKEY_LOCAL_MACHINE містяться основні відомості про апаратні засоби комп'ютера, включаючи драйвери пристроїв і конфігураційну інформацію. Якщо інформація про який-небудь пристрій відсутня , то Windows 98 не зможе використовувати його.
HKEY_LOCAL_MACHINE - для найдокладнішої інформації про апаратне забезпечення. Наприклад, він містить всю інформацію, необхідну для Plug and Play, а також надає повний список драйверів пристроїв і їх рівні ревізії (revision level) і, навіть, може містити інформацію про ревізію самого апаратного забезпечення.
Крім того в цьому розділі вміщено деяку інформацію про програмне забезпечення. Наприклад, 32-розрядний додаток буде зберігати таблицю установок і форматів (Setup and Format Table- STF) саме тут. Ця інформація використовується додатком під час установки. Деякі додатки використовують її під час змін параметрів їх установки. Такі додатки, як Word, зберігають всю інформацію про свою установку в таблицях STF. У цьому розділі міститься тільки інформація глобального характеру.
Розділ HKEY_CURRENT_USER
Розділ HKEY_CURRENT_USER містить безліч параметрів налаштування програмного забезпечення, у яких зберігається інформація про конфігурацію робочого столу і клавіатури. Крім того, у цьому розділі є інформація про параметри меню Пуск. Тут - усі параметри налаштування, специфічні для користувача.
HKEY_CURRENT_USER цілком присвячений управлінню параметрів поточного користувача, тобто того користувача, що у даний момент зареєстрований у системі. Це відрізняється від користувальницької конфігураційної інформації, що зберігається в інших розділах реєстру. Інформація в цьому розділі є динамічною; інформація в інших розділах, що відноситься до користувальницьких параметрів налаштування, - статична. Реєстр копіює вміст одного з підрозділів з HKEY_USERS у даний розділ і по закінченні роботи обновляє розділ HKEY_USERS.
У HKEY_CURRENT_USER Windows 98 одержує нову інформацію про настроювання системи, а також поміщаються будь-які зміни. Усе, що тут зберігається, служить тільки для налаштування системи для користувача, але ніколи не містить системної інформації (наприклад, опис драйвера пристрою).
Кожна вітка складається з розділів які в свою чергу – містять параметри та їх значення . Значення ,що їх можуть набувати параметри того, чи іншого ключа системного реєстру можуть бути декількох типів
Reg_SZ – рядковий тип ;
Послідовність символів, що закінчуються нульовим байтом.
Reg_Dword – цілочиселюний тип ;
Застосовується для збереження різних лічильників і цифрових значень.
Reg_Binary – двійковий ;
Застосовується, в основному, для збереження внутрішніх даних програм.
REG_EXPAND_SZ (стрічковий);
Може містити змінні оточення, що будуть «розгорнуті» у їхні значення при застосуванні цього значення реєстру. Наприклад, %SystemRoot%system32notepad.exe.
REG_MULTI_SZ(багатостроковий);
Застосовується для збереження списків.
REG_DWORD_BIG_ENDIAN (числовий);
Байт старших розрядів знаходиться на початку
слова.
REG_LINK (символічне посилання);
Зберігається а форматі UNICODE.
REG_RESOURCE_LIST (обліковий);
Список апаратних ресурсів, застосовується тільки в підгілці HARDWARE гілки HKEY_LOCAL_MACHINE.
REG_FULL_RESOURCE_ DESCRIPTOR(обліковий);
Описатель апаратного ресурсу. Застосовується тільки в підгілці HARDWARE гілці HKEY_LOCAL_MACHINE.
REG_RESOURCE_REQUIREMENTS_LIST (обліковий);
Необхідні апаратні ресурси.
Через системний реєстр можна впливати на будь-які параметри налаштування як самої системи, так і програмного забезпечення ЕОМ. Змінюючи значення відповідних параметрів так звану “тонку” настройку операційної системи, так і прикладних програм .
Однак все ще не існує офіційного посібника по роботі з системним реєстром операційної системи Windows , тому перш ніж змінбвати значення будь-якого параметра , необхідно зробити резервну копію системного реєстру. Це можна зробити за допомогою програм пакету ResourseKit фірми Microsoft.
Увага! Будь-яке некваліфіковане втручання в структуру системного реєстру може призвести до краху всієї системи. Якщо ви адмініструєте сервер, чи робочу станцію на основі Win9x/nt/2000 , то системний реєстр допоможе вам підвищити рівень безпеки та ефективності вашої системи .
Однак, кожен раз запускати редактор реєстру і шукати потрібні ключі , особливо коли ви обслуговуєте декілька машин, буває досить важко. Та й запам’ятати величезну кількість параметрів та їх допустимих значеннь просто неможливо. В даній роботі було реалізовано спробу хоча б частково полегшити процес роботи з системним реєстром.
Інколи робота з реєстром Windows NT — просто жах. Хто не читав такого попередження: «Using the registry can render your system useless or unstable. The... makes no warranties, explicit or implied» [«Використання реєстру може чи дестабілізувати привести в непридатність систему....... (фірма-виробник програмного забезпечення) не дає ніяких гарантій»]?! Яка дурниця! На комп'ютері можна дестабілізувати і привести в непридатність усе що завгодно!
Ця програма адресована тим, хто вміє працювати з програмою Regedt32.exe, робити резервне копіювання і відновлення системи. Крім того, Ви повинні добре розбиратися в Windows NT Server і Windows NT Workstation.
Власне, ключі реєстру складаються з таких компонентів:
Розділ (Hive): HKEY_LOCAL_MACHINE Один з розділів
системного реєстру.
Вітка (Key): SystemCurrentControlSet Містить параметр, що
ServicesYA-tapi модифікується
Параметр Start Параметр, що модифікується.
(Value Name):
Тип данніх REG_DWORD Допустимі наступні типи
(Data Type): даних: REG_BiNARY,
REG_DWORD,
REG_EXPAND_SZ,
REG_MULT1-SZ, REG_SZ..
Значення 0x0 Значення параметра. Його можна
(Value): змінювати в допустимому діапазоні, чи додати нове значення.
Пакети відновлення (service packs), узагалі, гарна річ, але часом вони вносять хаос до реєстру.Перед установкою пакета відновлення варто роздрукувати основні елементи реєстру. Саме так виявляються чимало змін. Крім того, довідуємось масу способів проникнення в надра реєстру. Звичайно, найбільше задоволення одержуєш від утиліти REGMON!
спробувати цей інструмент, щоб б простежити вплив його найпростіших функцій на реєстр (наприклад, включіть Control Panel з головного меню). (Обновлена версія цієї програми знаходиться на Web-вузлі книги http://www.registrysecrets.com/regsec/programs.cfm.)
Готуючи книгу, в роботі широко використовувались пошукові сервери Інтернету і, напевно, міг би написати цілу главу про всіх «за» і «проти» кожного конкретного пошукового сервера. Так на AltaVista (www.altavista.com), та на HotBot (www.hotbot.com) по ключових словах «НКЕУ», «Registry» чи навіть «Windows NT Registry» Ви одержите десятки тисяч посилань. Зі знайденого вибрано якнайкорисніше. Далі, перевіряючи ці зведення на практиці, або одержували обіцяні переваги, або переустановлювали тестувальну систему. Досвід показує: приблизно 30% цих рекомендацій заслуговують довіри, а інші 70% дозволяють зробити висновок, що саме така кількість «Internet» рекомендацій — або дублювання, або зовсім не працюють під Windows NT.
Знайдено безліч елементів реєстру в групах новин (newsgroups) і на серверах розсилання (list servers). Це недорогі і, що важливіше, безцінні засоби. У прикладах модифікації елементів реєстру набагато більший високий відсоток вдалого повторення описуваного результату (більш 85%). Складено список Web-вузлів, груп новин і серверів розсилання — він приводиться далі.
Запускайте Regedt32.exe, а для пошуку — Regedit.exe і відкривайте розділ за розділом. Подорож у безоднях реєстру дуже цікава і... дуже небезпечна. Удосталь поекспериментував з ним, навчилися відновлювати систему навіть після її повного руйнування.
Для повноти опису визначимо фізичне положення файлів реєстру. Як Ви розумієте, реєстр не існує десь у просторі, а фізично розташований на диску, але не одним великим файлом , а розбитий на декілька частин:
Галузь Файл
HKEY_LOCAL_
MACHINENSYSTEM
HKEY_LOCAL_
MACHINEXSAM
HKEY LOCAL
MACHINEXSECURITY
HKEY_LOCAL_
MACHINEXSOFTWARE
HKEYJJSERSVDEFAULT
HKEY_USERS
<UserSID>
%SystemRoot%system32configSYSTEM %SystemRoot%system32configSAM
%SystemRoot%systera32config
SECURITY
%SystemRoot%system32config
SOFTWARE
%SystemRoot%profflesDefault
Userntuser.dat
%SystemRoot%profiles%user%ntuser.dat
Інформацію про відповідність галузей реєстру і файлів можна одержати з розділу: HKEY_LOCAL_MACHINESystemCunentControlSethiveUst. Дуже важлива для процедури завантаження системи галузь HKEY_LOCAL_MACHINESYSTEM. Вона містить сукупність розділів реєстру — control set — необхідних для процедури завантаження. HKEY_LOCAL_MACHINESYSTEMClone — копія control set, створена ядром на етапі ініціалізації.
HKEY_LOCAL_MACHINESYSTEMControlSetOO1 — основна сукупність control set, що використовуна за замовчуванням при завантаженні Windows NT. HKEY_LOCAL_MACHINESYSTEMControlSet002 — резервна копія control set, що використовується при невдалому завантаженні Windows NT. HKEY_LOCAL_MACHINESYSTEMCurrentControlSet — це control set з якого завантажилася дана копія Windows NT. Звичайно це символічне посилання HaHKEY_LOCAL_MACHINESYSTEMConttolSet001. Тепер розглянемо склад control set докладніше: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl — цей розділ містить підрозділи, необхідні для завантаження WindowsNT. Наведено деякі з них:
...ServiceGroupOrder — описує послідовність завантаження груп служб. Необхідний щоб служби мережних протоколів завантажувалися після того, як завантажилися драйвера мережної плати.
BootVerlficationProgramm — це значення визначає нестандартну програму, що підтверджує вдале завантаження. Як правило, це програма від виробника апаратури, що перевіряє параметри нестандартного устаткування.
...ComputerName — містить два параметри: ComputerName (ім'я, яке буде присвоєно комп'ютеру на етапі завантаження) і ActiveComputerName (активне ім'я комп'ютера, що при завантаженні заміняється на ComputerName).
..hivelist — ключ, що вказує фізичне розташування файлів реєстру.
...Keyboard Layout — містить ключ DOSKeybCodes, у якому описані всі доступні системі коди клавіатурних розкладок.
...Keyboard Layouts — описує DLL-файли клавіатурних розкладок.
...ALSA— описує доступні пакети ідентифікації. Ці значення варто змінювати тільки у випадку системних помилок!
...Prlnt — інформація про встановлені принтери, їх параметри і порти друку (print/port monitors).
...PriorityControl — встановлення пріоритетів процесорного часу. Для зміни цього підрозділу краще скористатися системними параметрами з Control Panel (Панель керування). ...Session Manager — містить кілька важливих значень і розділів:
• BootExecute — визначає програми, що виконуються на етапі завантаження ядра. Наприклад, chkdsk.
• DOSDevices — визначає відповідність DOS-пристроїв (PRN, AUX, UNC і т.п.) пристроям Windows NT.
• Environment — визначає системні змінні оточення.
• FileRenameOperation — визначає які файли будуть перейменовані на етапі завантаження. Часто застосовується програма установки, у випадку якщо потрібно «змінити» якийсь з компонентів, що використовувався .
• Subsystems — визначає «підсистеми», встановлені в Windows NT, наприклад, Posix чи OS/2.
Розглянемо основну гілку реєстру, що описує усі драйвера пристроїв, драйвера файлових систем і системні служби Windows NT. Кожен розділ визначає чи службу драйвер і його (її) ім'я. HKEY_LOCAL_MACHINESystemCurrentControlSetServices<HMH чи служби драйвера>
Даний параметр визначає тип служби (драйвера).
Параметр: Турі Тип даних: REG_DWORD
Можливі значення: 0x1—драйвер ядра;
0x2 — драйвер файлової системи;
0x4 — пристрою (у цьому випадку підгілки містять опис елементів апаратури);
0x10 — служба (неподільні процеси);
0x20 — служба (подільні процеси).
Даний параметр визначає, на якому етапі буде запускатися дана служба (драйвер). Параметр: Start
Тип даних: REG_DWORD
Можливі значення: 0x0 — на етапі завантаження ядра (boot);
0x1—на етапі ініціалізації ядра (start);
0x2 — автоматично, на етапі старту Win32 підсистеми (automatic);
0x3 — може бути завантажена при запиті чи користувача іншої служби (manual);
0x4 — завантаження заборонене (disabled).
Даний параметр визначає реакцію системи, якщо драйвер чи служба, почала завантажуватися, не змогли цього зробити чи неправильно иніціалізувались.
Параметр: ErrorControl Тип даних: REG_DWORD
Можливі значення:
0 комментариев