هر نرم افزار برای ذخیره اطلاعات مورد نیاز خود از ساختارهای داده ئی مختلفی استفاده می نماید . ساختارهای داده ، دارای نقشی اساسی در یک نرم افزار می باشند و در صورت بروز اشکال ، ادامه حیات نرم افزار با مشکل اساسی مواجه می گردد . اختلال ایجاد شده به نوع و جایگاه ساختمان داده بستگی داشته و در برخی موارد ممکن است نرم افزار قادر به ادامه حیات عادی خود نباشد .
سیستم های عامل به عنوان مهمترین نرم افزار سیستم نیز از این قاعده مستثنی نبوده و با توجه به جایگاه برجسته آنان در مدیریت منابع سخت افزاری و نرم افزاری ، اهمیت و حساسیت ساختارهای داده ئی آنان مضاعف می گردد، چراکه با بروز اشکال در هر یک از ساختمان داده های مورد نیاز یک سیستم عامل، در مدیریت آن اختلال ایجاد می گردد و دامنه آن گریبانگیر سایر نرم افزارها می گردد. توجه داشته باشیم که سیستم عامل محیط عملیاتی لازم برای اجرای سایر برنامه های کامپیوتری را فراهم می نماید . بدیهی است با بروز اشکال ، امکان ایجاد و مدیریت محیط اجرائی مورد نیاز سایر برنامه ها وجود نخواهد داشت . در برخی موارد و با توجه به جایگاه یک ساختمان داده ، می بایست مجددا" سیستم عامل بر روی ماشین نصب گردد .
هر سیستم عامل به منظور مدیریت اطلاعات مورد نیاز خود از ساختمان داده های مختلفی استفاده می نماید که هر یک دارای وظایف و جایگاه مختص به خود می باشند .سیستم عامل ویندوز نیز از این قاعده مستثنی نمی باشد. بدون شک ریجستری ( Registry ) ، یکی از مهمترین و حساس ترین ساختمان داده های موجود در ویندوز است که با توجه به جایگاه برجسته آن لازم است که با آن بیشتر آشنا شویم .
ریجستری و ماهیت آن
ریجستری که همزمان با عرضه ویندوز 95 ارائه گردید ، محلی به منظور ذخیره داده های منحصربفرد در ارتباط با پیکربندی ماشین و کاربر است . به عبارت دیگر ، ریجستری یک بانک اطلاعاتی بزرگ است که تمامی اطلاعات پیکربندی در ارتباط با کاربر ، برنامه ها و سخت افزار را در خود نگهداری می نماید. دامنه اطلاعات ذخیره شده در بانک اطلاعاتی فوق بسیار گسترده بوده و مواردی همچمون رنگ زمینه ، رویه ، Screen saver تا رمزهای عبور محلی را شامل می شود.
ریجستری با هدف جایگزین شدن با فایل های ini. طراحی گردید .در فایل های ini. ، اطلاعات پیکربندی در فایل های متن ذخیره می گردید که امکان ویرایش آنان به سادگی وجود داشت . فایل های فوق علیرغم مزایائی همچون کم حجم بودن و ویرایش آسان ، دارای محدودیت هائی نظیر ظرفیت کم و عدم حمایت از چندین کاربر می باشند. ریجستری با این هدف طراحی گردید تا بتواند علاوه بر غلبه محدودیت های اشاره شده ، امکان بازیافت تنظمیات پس از بروز مشکل در سیستم را نیز فراهم نماید . برخی برنامه ها همچنان از فایل های ini. برای ذخیره تنظیمات سفارشی کاربر استفاده می نمایند .
اکثر اطلاعات به صورت اتوماتیک و در زمان نصب سیستم عامل در ریجستری نوشته می شود . سایر اطلاعات همزمان با نصب برنامه های جدید در ریجستری درج می گردد . در صورت ضرورت می توان اطلاعات موجود در ریجستری را ویرایش و یا حذف نمود . ویرایش و یا حذف داده موجود در ریجستری ، می بایست با دقت و بررسی تمامی جوانب کار انجام شود . درصورت عدم رعایت نکات اشاره شده ، ممکن است مجبور به نصب مجدد ویندوز شویم . در صورتی که لازم است تغییراتی در ریجستری داده شود می بایست در ابتدا و با استفاده از فرآیندی که در ادامه به آن اشاره خواهد شد از اطلاعات موجود backup گرفته شود .
شکل زیر ساختار ریجستری را که از پنج زیردرخت تشکیل می گردد نشان می دهد . از پانل سمت چپ برای بررسی یک کلید و از پانل سمت راست برای نمایش داده مرتبط با کلید انتخابی استفاده می گردد .
با استفاده از برنامه regedit.exe می توان اطلاعات موجود در ریجستری را مشاهده ، ویرایش و حذف نمود . برای فعال کردن برنامه فوق کافی است از گزینه Run استفاده نمائیم .
تنظیم مجوزها
با تنظیم مجوزها می توان امکان دستیابی و یا عدم دستیابی به زیردرخت ها و کلیدها را در اختیار برنامه ها و کاربران قرار داد . به صورت پیش فرض ، کاربران عادی صرفا" قادر به مشاهده اطلاعات می باشند و مدیران سیستم علاوه بر امکان فوق، می توانند مقادیر کلیدها را نیز تغییر دهند . مثلا" ممکن است در زمان نصب یک نرم افزار ، به دلایل متعددی نرم افزار موفق به ایجاد مجوزهای دستیابی در ریجستری نگردد و عملا" بخشی از نرم افزار نتواند خدمات خود را در اختیار کاربران قرار دهد . با تنظیم دستی مجوزها ، امکان استفاده از نرم افزار فراهم می گردد .
برای تنظیم مجوزها ، پس از اجرای برنامه regedit.exe ، یک کلید را انتخاب نموده ( کلیک سمت راست ) و گزینه permission را انتخاب می نمائیم .در ادامه لیست ACL برای کلید مورد نظر نمایش داده می شود و می توان با استفاده از آن مجوزهای دلخواه را تنظیم نمود (دقیقا" مشابه تنظیم مجوزها بر روی یک فایل و فولدر در سیستم فایل NTFS ) .
زیردرخت های پنج گانه ریجستری
ریجستری دارای پنج بخش اصلی است که هر یک مجموعه ای از زیر کلیدها را در خود نگهداری می نمایند . اکثر عملیات با استفاده از زیردرخت های MACHINE _ و USER _ انجام می شود . اسامی این زیردرخت ها عبارتند از :
HKEY_CLASSES_ROOT ، شامل داده لازم به منظور ارتباط نوع فایل ها با برنامه ها و پیکربندی مورد نیاز برای اشیاء COM است . به زیردرخت فوق به اختصار HKCR نیز گفته می شود .
HKEY_LOCAL_USER ، شامل تنظمیات و مراجع لازم برای کاربری است که به سیستم log in نموده است . تنظمیات فوق پویا بوده و برای هر کاربر منحصربفرد می باشد . به زیردرخت فوق به اختصار HKCU نیز گفته می شود .
HKEY_LOCAL_MACHINE ، شامل اطلاعات لازم در خصوص سخت افزارهای نصب شده است. اطلاعات فوق معمولا" تا زمانی که تغییراتی در آنان داده نشود برای تمامی کاربران ثابت خواهند بود . به زیردرخت فوق به اختصار HKLM نیز گفته می شود .
HKEY_USERS ، شامل یک اشاره گر به HKEY_LOCAL_USER و پروفایل کاربر DEFAULT است ( یک تمپلیت زمانی استفاده می گردد که یک پروفایل به کاربران جدید ، نسبت داده شود ) .
HKEY_CURRENT_CONFIG : شامل داده پیکربندی برای پروفایل سخت افزار جاری است و به پروفایل HKEY_LOCAL_MACHINESYSTEMCurrentControlSetHardware اشاره می نماید .
نوع های داده تعریف شده در ریجستری
در پانل سمت راست برنامه Registry Editor ، می توان نوع های داده متفاوت را مشاهده نمود :
REG_SZ ، یک مقدار ساده رشته ای است و می تواند شامل یک URL,Path و یا شماره پورت باشد .
REG_BINARY : داده باینری که به صورت مبنای شانزده ارائه می گردد.
REG_DWORD : یک نوع خاص از نوع REG_BINARY می باشد ، با این تفاوت که طول آن چهار بایت است .
REG_MULTI_SZ : یک رشته با طول متغیر است که امکان ذخیره چندین پارامتر در یک مقدار را فراهم می نماید .
REG_EXPAND_SZ : یک رشته با طول متغیر است که می تواند شامل اطلاعات پویائی باشد که در زمان راه اندازی سیستم تغییر می یابند ( نظیر نام کاربر که برای هر کاربر طول آن متفاوت است ) .
پیکربندی ریجستری از راه دور
با استفاده از برنامه Regedit.exe و در صورت وجود مجوزهای لازم، می توان پیکربندی یک ماشین را از راه دور را انجام داد . مراحل انجام این کار به شرخ زیر است :
اجرای برنامه regedit.exe
انتخاب گزینه Connect Network Registry از طریق منوی File
درج نام کامپیوتری که قصد داریم به آن متصل شویم ( در این رابطه می توان از دکمه Advanced به منظور جستجو جهت یافتن کامپیوتر نیز استفاده نمود ) .
درج نام و رمز عبور جهت اتصال به ماشین
در این مرحله ریجستری ماشین راه دور بر روی کنسول شما نمایش داده می شود .
پس از اعمال تغییرات می توان گزینه Disconnect Network Registry را انتخاب و از برنامه خارج گردید .
و اما دو نکته مهم :
هر گونه تغییرات بلافاصله بر روی کامپیوتری که پیکربندی آن را از راه دور انجام می دهیم ، اعمال می گردد ( در برخی موارد ممکن است تغییرات پس از راه اندازی سیستم اعمال گردد )
در مواردی که از راه دور به یک ریجستری متصل می شویم صرفا" امکان ویرایش کلیدهای HKEY_LOCAL_MACHINE و HKEY_USERS وجود دارد .
تهیه نسخه Backup از ریجستری
برای گرفتن backup از ریجستری و یا بخش هائی از آن در ویندوز 2003 ، می توان از سه روش مختلف استفاده نمود :
استفاده از برنامه کمکی backup ویندوز
استفاده از پتانسیل import/export برای بخش هائی خاص از زیردرخت ها و یا کلیدها (با استفاده از برنامه Regedit.exe )
استفاده از برنامه reg.exe از طریق خط دستور .
روش اول : استفاده از از برنامه کمکی Backup و Restore
پس از طی مسیر Progarms|Accessories|System Tools می توان برنامه Backup را فعال نمود . با استفاده از امکانات این برنامه می توان عملیات تهیه backup و یا برگرداندن اطلاعات backup گرفته شده را انجام داد . از طریق Backup tab ، گزینه My computer را فعال و System State را انتخاب نمائید . بر روی یک کنترل کننده domain ، تهیه نسخه پشتیبان از System State ، امکان تهیه backup از اکتیودایرکتوری، فایل های راه اندازی سیستم (boot ) ، سرویس دهنده Certificate ( در صورتی که نصب شده باشد ) ، کلاس اشیاء عناصر Com ریجستر شده و SYSVOL نیز وجود خواهد داشت . در ادامه ، محل ذخیره نسخه Backup را مشخص نموده ( توصیه می گردد که نسخه backup بر روی یک محیط ذخیره سازی removable و یا پارتیشن دیگر ایجاد گردد ) و گزینه Start Backup را فعال می نمائیم . در نهایت ، یک جعبه محاوره ای جدید نمایش داده می شود که وضعیت فرآیند backup را نشان می دهد.
برای برگرداندن اطلاعات backup ، در ابتدا گزینه Restore and Manage Media را انتخاب نموده و در ادامه با استفاده از منوی Tools گزینه Catalog a backup file را انتخاب و مسیر ذخیره فایل backup را مشخص می نمائیم . در این مرحله مواردی را که قصد برگرداندن اطلاعات آن را داریم مشخص نموده ( در این مورد خاص تمام System State ) و با فشردن دکمه Start Restore عملیات برگرداندن اطلاعات آغاز می گردد .
روش دوم : Importing/Exporting فایل های ریجستری
در مواردی که یک بخش از ریجستری export می گردد ، نتایج به صورت یک فایل و با انشعاب reg. ذخیره می گردد . در ادامه با اجرای فایل فوق مقادیر ذخیره شده مجددا" در ریجستری نوشته خواهند شد . برای export ریجستری ، کلید مورد نظر را از پانل سمت چپ انتخاب نموده و پس از کلیک برروی آن ( کلیک سمت راست) ، گرینه Export را انتخاب و در ادامه محل ذخیره فایل را مشخص می نمائیم. پس از export داده ذخیره شده در ریجستری ، می توان با استفاده از یک ویرایشگر متن نظیر Notepad آن را ویرایش نمود .
محتویات یک فایل نمونه reg . :
[HKEY_CURRENT_USERControl PanelAccessibilityMouseKeys] |
برای import داده ذخیره شده در یک فایل درون ریجستری ، کافی است بر روی فایل مورد نظر کلیک نموده ( double click ) و در پاسخ به سوال مطرح شده گزینه Yes را انتخاب تا در نهایت اطلاعات در ریجستری نوشته گردد .
روش سوم : استفاده از خط دستور
با استفاده از برنامه reg.exe که از طریق خط دستور اجراء می گردد ، می توان بخش هائی از ریجستری را با استفاده از دستوراتی ساده و اندک import و یا restore نمود . با استفاده از برنامه فوق می توان از یک زیردرخت در زمانی که سیستم در حالت اجراء است ، backup گرفت . REG SAVE و REG RESTORE دو فرمان مهم برنامه فوق می باشند :
دستور REG save : با استفاده از دستور فوق می توان از کلیدهای ریشه Backup گرفت . نحوه استفاده از دستور فوق به صورت زیر است :
reg save <root_subtree> <save_location> |
فایل های ریجستری در مسیر مشخص شده ذخیره می گردند :
دستور REG restore : با استفاده از دستور reg restore می توان کلیدهائی را که قبلا" با استفاده از دستور Reg save ذخیره شده اند را restore نمود . نحوه استفاده از دستور فوق به صورت زیر است :
Reg restore hkcr e: egbackuphkcu |
جمع بندی
آشنائی با ساختار ریجستری و فرآیندهای backup و restore ، دانش ارزشمندی برای هر کاربر است . مدیران شبکه در اغلب موارد می توانند با استفاده و ویرایش ریجستری ، بسیاری از مسائل را برطرف نمایند. مسائلی که شاید تنها گزینه موجود برای حل آنان استفاده از ریجستری باشد . در زمان کار با ریجستری ، می بایست حداکثر دقت را داشته باشیم چراکه ممکن است با بروز یک اشتباه کوچک امکان استفاده از سیستم وجود نداشته باشد و مجبور به نصب مجدد ویندوز شویم .