محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

کاملترین آموزش بکاپ گیری از اکتیودایرکتوری + بازیابی به زبان ساده

چگونه از Active Directory بکاپ ( Backup ) بگیریم؟ یکی از مهمترین دغدغه های مدیران شبکه های مایکروسافتی اطلاعات موجود در ساختار اکتیودایرکتوری موجود در شبکه آنها می باشد ، بدون شک در شبکه ای که از سیستم عامل های شرکت مایکروسافت استفاده می شود ، اکتیودایرکتوری قلب تپنده شبکه محسوب می شود و تصور کنید که روزی پیش بیاید که این قلب تپنده از کار بیافتد و نیاز به بازسازی یا بازیابی داشته باشد ، اینجاست که کابوس نبود اکتیو دایرکتوری برای مدیران شبکه پیش می آید ، تا زمانیکه سرور کار می کند هیچ مشکلی نیست و همه چیز آرام است و ما هم خوشحال هستیم .

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

اما زمانی که سرور و اطلاعات اکتیودایرکتوری به مشکل می خورند نه چیزی آرام است و نه کسی خوشحال ، تقریبا همه سرویس هایی که در شبکه راه اندازی کرده اید به این سرویس وابسته هستند ، شیرپوینت ، اکسچنج سرور ، ارتباطات اینترنت و سیستم اکانتینگ شبکه ، پایگاه های داده و ورود کاربران به سیستم .... همه و همه در یک آن دچار مشکل حاد خواهند شد و در اینجاست که اگر از قبل به چنین روزی فکر کرده باشید گزینه Backup باعث آرامش قلبی شما می شود .

همیشه و در همه حال فراموش نکنید که سه نکته بسیار بسیار مهم در شبکه وجود دارد که در صورت رعایت این سه نکته در شبکه ، یک مدیر شبکه همیشه با خاطری آسوده به خواب می رود ، نکته اول Backup ، نکته دوم از نکته اول هم مهمتر است و آن Backup است و در نهایت نکته سوم که آخرین و مهمترین گزینه در اینها می باشد باز هم Backup است ، پس هیچوقت این نکات را برای بقای کاری خود فراموش نکنید.

اما هدف از این سری مقالات بررسی و پیاده سازی روش های مختلف Backup گیری از مهمترین رکن شبکه های مایکروسافتی یا همان اکتیودایرکتوری است ، در ابتدا به معرفی روش های مختلف و ابزارهای مختلفی که در خود ویندوز برای انجام عملیات Backup استفاده می شوند خواهیم پرداخت و در نهایت با همه این ابزارهای تا حدودی آشنایی پیدا کرده و با آنها بصورت عملی از ساختار اکتیو دایرکتوری Backup می گیریم .

البته Backup گرفتن بدون بازگردانی چندان فایده ای ندارد بنابراین روش های بازیابی یا Recovery اطلاعات اکتیودایرکتوری را نیز بررسی خواهیم کرد ، همیشه به خاطر داشته باشید که ابزارهایی که در خود ویندوز برای انجام عملیات هایی مثل Backup گیری یا امثال اینها بصورت پیشفرض تعبیه شده اند به هیچ عنوان به قدرت ابزارهای جانبی که توسط شرکت های جانبی بصورت third party برای انجام Backup استفاده می شوند نیستند.

اما ما بایستی بتوانیم از حداقل امکانات حداکثر استفاده را ببریم ، ما هم برای اینکار از ابزارهای پیشفرض تعبیه شده در ویندوز سرور 2008 استفاده خواهیم کرد ، در ویندوز سرور 2008 سه ابزار به منظور Backup گیری از اطلاعات ویندوز تعبیه شده است.

معرفی انواع روشهای بکاپ گیری

  • Windows Server Backup: این ابزار در واقع بروز رسانی شده ابزاری است که در ویندوز سرور 2003 به نام NTBACKUP شناخته می شد ، این ابزار بصورت گرافیکی و دارای کنسول GUI می باشد ( خواهشا گوئی خوانده شود ) ، این ابزار بر خلاف نسل قبلی خود بصورت پیشفرض در ویندوز نصب نشده است و می بایست با استفاده از کنسول Server Manager و در قسمت Features این قابلیت را به ویندوز سرور اضافه کنید ، از قابلیت های خوبی که این ابزار دارد می توان به Backup گیری از کلیه فایل ها و درایوها و پارتیشن ها بصورت یکجا و بازگردانی اونها اشاره کرد ، در ادامه بصورت کامل با شیوه نصب و راه اندازی و همچنین استفاده از این ابزار برای تهیه Backup از اکتیودایرکتوری اشاره خواهیم کرد.
  • Wbadmin : این ابزار در واقع همان ابزار گرافیکی Windows Server Backup در محیط Command Prompt است با این تفاوت که فقط دستورات خط فرمان را اجرا می کند و البته قابلیت های بسیار بیشتری نسبت به مشابه خود یعنی Windows Server Backup دارد.
  • NTDSUTIL : این ابزار خط فرمانی یا Command Prompt ای ، ابزاری ویژه برای استفاده در اکتیودایرکتوری است که قابلیت Backup گیری از اکتیودایرکتوری را نیز در خود دارد ، در واقع Backup گیری صرفا نمونه ای از قابلیت هایی است که این ابزار در اختیار ما قرار می دهد.

همانطور که اشاره کردیم گرفتن Backup از اکتیودایرکتوری و اطمینان از اینکه Backup ما به درستی قابل بازگردانی می باشد یکی از مشکلاتی است که همیشه مدیران فناوری اطلاعات با آن مواجه هستند . برای Backup گرفتن از اکتیودایرکتوری معمولا شما کل دامین کنترلر یا DC خود را Backup می گیرید ، Backup گرفتن از کل یک DC ممکن است ساده باشد اما همیشه بحث بازگردانی یا Recovery را نیز در نظر داشته باشید.

معمولا برای گرفتن Backup راهکار های مختلفی وجود دارد اما شما بایستی راهکاری را انتخاب کنید که در هنگام بازگردانی اطلاعات دچار مشکل نشوید و به سادگی بتوانید عملیات بازیابی را انجام دهید ، یکی از مشکلات یا بهتر بگویم سهل انگاری هایی که معمولا مدیران فناوری اطلاعات در خصوص مبحث Backup انجام می دهند ، همین بحث عدم تفکر در خصوص شیوه بازگردانی و پیشینی نکردن مشکلات ناشی از نوع روشی است که Backup را تهیه می کنند.

اگر با ویندوز سرور 2003 و ساختار اکتیودایرکتوری موجود در آن کار کرده باشید قطعا کار کردن با روش هایی که در ویندوز سرور 2008 برای بحث Backup معرفی می شوند برای شما چندان مشکل نخواهد بود . شما همچنان می توانید از طریق ابزارهای سیستم از کل ساختار اکتیودایرکتوری

و یا تنها اطلاعات موجود در System State یک دامین کنترلر بصورت کلی Backup تهیه کنید ، همچنان برای بازگردانی اطلاعات بایستی سیستم را Reboot کنید و با استفاده از Directory Services Restore Mode یا همان DSRM سیستم را بوت کنید و اطلاعات System State را بر روی DC موجود بازگردانی کنید .

شما همچنان برای بازگردانی اطلاعات AD از ابزار NTDSUTIL استفاده می کنید و اگر برای مثال می خواهید فقط یکی از اشیاء حذف شده را بازگردانی کنید از روش authoritative restore استفاده می کنید . بنابراین اگر سابقه قبلی در استفاده از ویندور سرور 2003 و سرویس اکتیودایرکتوری آن را دارید تا حد زیادی جلو هستید

اما کسانی که با ویندوز سرور 2008 وارد این سرویس شده اند هم نباید نگران باشند ، در این مقاله ما همه چیز را از ابتدا و مبانی آن توضیح خواهیم داد و فرض را بر این می گذاریم که شما آشنایی با این سرور و محصولات آن از قبل نداشته اید ، بنابراین اصلا ترس به دل خود راه ندهید.

در ویندوز سرور 2008 تغییرات اساسی در ابزارهای Backup گیزی سیستم ایجاد شده است به ویژه در بحث Backup گیری DC ها و علی الخصوص در بحث رسانه های ذخیره سازی یا Media ها ، در ویندوز سرور 2008 دیگر خبری از ابزاری به نام ntbackup.exe که دارای محیط گرافیکی برای تهیه Backup از تنظیمات سرور و همه فایل های آن را داشت نیست و به جای آن ابزاری به نام Windows Server Backup به ویندوز سرور 2008 چه در نسخه گرافیکی و چه در نسخه Core اضافه شده است.

ویندوز سرور 2008 به شما قابلیت های جدیدی را معرفی کرده است که از طریق آنها شما خطر حذف شدن اشیاء بصورت تصادفی از اکتیودایرکتوری را تا حدود زیادی کاهش می دهید . در اینجا کمی در خصوص این قابلیت های جدید صحبت خواهیم کرد ، همانطور که ساختار Backup گیری در ویندوز سرور 2008 با معرفی Windows Server Backup تغییر یافت

امکان جالبی به نام Snapshot از اکتیودایرکتوری نیز به این سرور اضافه شده است ، قابلیت Snapshot از اکتیودایرکتوری یک راهکار بسیار سریع برای بازگردانی اطلاعات حذف شده از اکتیودایرکتوری بودن نیاز به Reboot کردن دامین کنترلر است .

در خصوص این قابلیت در قسمت بعدی بصورت کاملتری در خصوص چگونگی بازگردانی اشیاء حذف شده در اکتیودایرکتوری بصورت آنلاین و همچنین Tombstone Lifetime و گرفتن Volume Shadow Copy Service یا VSS Snapshot ها از اکتیودایرکتوری صحبت خواهیم کرد. اما اول از همه چیز به بررسی چگونگی استفاده از Windows Server Backup برای تهیهBackup و همچنین Recovery با بازگردانی اطلاعات Backup گرفته شده از اکتیو دایرکتوری بپردازیم.

ابزار Windows Server Backup چیست؟

به این موضوع دقت کنید که Windows Server Backup بروزرسانی شده یا بهتر بگوییم Update شده ابزار ntbackup.exe در ویندوز سرور 2003 نیست .در واقع Windows Server Backup یک ابزار کاملا جدید است و تنها کمی به ntbackup.exe شباهت دارد 

برای کسانی که به تازگی به محیط ویندوز سرور 2008 وارد شده اند این ابزار یک محیط کاملا متفاوت نسبت به ntbackup دارد ، البته دقت کنید که تفاوت بین این دو ابزار خیلی خیلی بیشتر از محیط گرافیکی و شکل ظاهری است ، در Windows Server Backup ساختار Backup گیری بصورت disk-to-disk و استفاده از VSS است . در ادامه مهمترین تغییرات و تفاوت های بین Windows Server Backup و Ntbackup را مشاهده می کنید :

  • Windows Server Backup از VSS برای گرفتن Backup ها بصورت بلوکی یا به اصطلاح Block Level Backup از کلیه Volume یا پارتیشن موجود بر روی سرور استفاده می کند و می تواند از روش های Backup گیری incremental نیز استفاده کند. این ابزار نتیجه Backup خود را در قالب فایل های VHD یا Microsoft Virtual Hard Disk ایجاد می کند ، این در واقع همان فرمتی است که راهکارهای مجازی سازی مایکروسافت از آن برای مجازی سازی سیستم عامل ها یا OS Virtualization استفاده می کند .در صورت نیاز شما می توانید همین فایل Backup را با استفاده از ابزارهایی مانند Vhdmount به Hyper-V یا Virtual Server معرفی کرده و به محتویات فایل بصورت مستقیم دسترسی پیدا کنید . اما به این نکته توجه کنید که درست است که این فایل با پسوند VHD ذخیره شده است اما باید توجه کنید که Windows Server Backup به این فایل قابلیت Bootable بودن بر روی محیط های مجازی را نمی دهد و بنابراین این نوع Backup گیری با فرآیند تبدیل کردن ماشین فیزیکی به مجازی متفاوت است . در تبدیل سیستم های فیزیکی به مجازی ابزار مورد استفاده کلیه درایورها و مخلفات سرور را به سیستم مجازی تبدیل میکند ، Windows Server Backup چنین کاری نمیکند .
  • Windows Server Backup فقط می تواند از پارتیشن هایی Backup و Restore داشته باشد که دارای فایل سیستم NTFS هستند . در این ابزار هر دو نوع Partition Table از نوع GUID و Master Boot Record پشتیبانی می شود.
  • Windows Server Backup همیشه از کل پارتیشن Backup می گیرد و شما هیچوقت نمی توانید از فایل های یا فولدرهای خاصی Backup بگیرید ، اما میتوانید در هنگام Restore کردن فایل یا پوشه خاصی را بازگردانی کنید. تنهای استثنائی که در این مرد وجود دارد تهیه Backup از System State است که در این مورد خاص از کل پارتیشن Backup گرفته نمی شود و صرفا اطلاعات مربوط به System State بک آپ گرفته می شود.
  • دقت کنید که با اینکه ویندوز سرور 2008 با استفاده از یک سری API های موجود می تواند از ساختار بک آپ گیری روی Tape پشتیبانی کند اما Windows Server Backup قابلیت پشتیبانگیری بر روی Tape بصورت مستقیم را ندارد ، در عوض می تواند بصورت مستقیم بر روی هارد دیسک های خارجی یا داخلی سیستم Backup بگیرد ، در ضمن بایستی توجه کنید که شما نمیتوانید با استفاده از این ابزار بر روی هارد دیسک های Basic و یا Encrypted بک آپ تهیه کنید.
  • سایر رسانه هایی که Windows Server Backup میتواند بر روی آنها بک آپ تهیه کند شامل Network Share ها و DVD می باشد. اما توجه کنید که به دلیل اینکه Network Share ها و همچنین DVD از ساختار Volume Shadow Copy Snapshot ها پشتیبانی نمی کنند شما نمی توانید برای گرفتن بک آپ بصورت نسخه ای ( Versioning ) و یا چند تایی ( Multiple ) استفاده کنید. علاوه بر این شما با استفاده از این ابزار نمی توانید از System State مستقیما بر روی شبکه Backup بگیرید و بایستی این نوع Backup بصورت محلی و بر روی Local Drive های شما قرار بگیرد .
  • کنسول گرافیکی Windows Server Backup قابلیت Backup گیری از System State را ندارد اما دستورات خط فرمان یا همان Command Line هایی که با این ابزار به نام Wbadmin ارائه شده است به شما قابلیت Backup گیری از System State را می دهند
  • به استثناء System State Backup کنسول Windows Server Backup نمی تواند Backup را در همان پارتیشن یا Volume ای قرار دهد که در حال Backup گیری از آن است .
  • Windows Server Backup برای بازگردانی سریع و آسان و کامل یک سیستم عامل طراحی شده است ، بنابراین شما برای بازگردانی اطلاعات از یک Backup توسط این ابزار نیازی به نصب مجدد یک سیستم عامل جدید نخواهید داشت ، Windows Server Backup به شما اجازه بازگردانی سریع یک سیستم عامل بصورت کامل را بدون نیاز به نصب هیچ پیشنیازی می دهد.

خوب در اینجا ممکن است این سئوال پیش بیاید که تغییراتی که بین دامین کنترلرهای ویندوز سرور 2008 که در دامین قرار دارند چطور توسط این ابزار Backup گرفته می شوند ؟ همیشه به خاطر داشته باشید که شما اگر N عدد دامین کنترلر در Forest داشته باشید ، نیازی نیست که از تک تک آنها Backup تهیه کنید ، شما همیشه می توانید با بازگردانی اطلاعات یک دامین کنترلر و Replicate کردن و Promote کردن یک DC جدید ، اطلاعات مربوط به اکتیودایرکتوری خود را بازیابی کنید .

اما برای ایجاد Backup Redundancy در شبکه معمولا پیشنهاد می شود که حداقل از دو عدد از DC های قابل نوشتن و خواندن در شبکه خود Backup بگیرید ، همچنین شما قابلیت Backup گیری از RODC ها را نیز در این ابزار دارید اما توجه کنید که شما نمی توانید اطلاعاتی که در RODC با این ابزار و ابزارهای دیگر Backup گرفته شده اند را بصورت Authoritative بازگردانی کنید ، زیرا RODC ها تغییرات خود را با سایر دامین کنترلر ها Replicate نمی کنند.

Windows Server Backup برای گرفتن Backup به یک پارتیشن یا Volume جداگانه به عنوان مقصد نیاز دارد. این نیازمندی ممکن است برای سرورهایی که تنها دارای یک Volume برای سیستم عامل هستند مشکلاتی ایجاد کند ، در اینجاست که شما بایستی توجه کنید که اگر امکان ایجاد یک پارتیشن جداگانه به جز پارتیشن سیستم عامل را دارید ، حتما آن را ایجاد کنید ، شما می توانید این کار را با استفاده از فضای اضافه باقیمانده بر روی سرور ایجاد کنید و بهترین گزینه این است که این Volume ایجاد شده را به صورت اختصاصی برای مصارف Backup گیری از سرورها استفاده کنید.

اگر این امکان وجود ندارد شما همچنان قابلیت Backup گیری بر روی شبکه را دارید . از جهتی اگر اطلاعات موجود بر روی Volume ای که بر روی آن سیستم عامل نصب شده است چندان دارای اهمیت نمی باشد ، شما می توانید از System State دامین کنترلر حتی بر روی همان Volume ای که سیستم بر روی آن نصب شده است استفاده کنید

و صرفا اطلاعات اکتیودایرکتوری را Backup بگیرید. برای اینکه بتوانید اطلاعات Backup مربوط به System State را بر روی همان Volume ای که سیستم عامل بر روی آن نصب شده است Backup بگیرید یا به اصطلاح بر روی Source Volume بک آپ تهیه کنید از روشی که در ادامه مقالات به آن اشاره شده است استفاده کنید.

توجه کنید که برخلاف Full System Backup که از کل اطلاعات Volume بک آپ تهیه می کند و در واقع بصورت Block Level Backup می باشد، در Backup گیری از System State ساختار Backup گیری به شکل File Based یا بر اساس فایل است ، این یعنی اینکه

شما در این نوع Backup از کلیه فایل های موجود در رجیستری ، فایل های سیستمی و تنظیمات سیستم در لحظه ای که در آن قرار دارید Backup گرفته اید و طبیعی است که در هنگام بروز مشکل شما نمی توانید کل سیستم عامل را از این طریق بازگردانی کنید. توجه کنید که در System State Backup سیستم از نرم افزارهای کاربردی موجود بر روی سیستم و همچنین User Profile هایی که بر روی سیستم قرار دارد Backup تهیه نمی کند.

شروع فرآیند Backup گیری از Domain Controller

اولین قدم در ایجاد یک Backup از DC نصب Feature مربوط به Windows Server Backup بر روی ویندوز سرور 2008 است . راحت ترین مسیر برای نصب این Feature استفاده از کنسول server manager و نصب این قابلیت از قسمت Add Features می باشد . البته اینکار برای محیط های نصب گرافیکی یا GUI استفاده می شود ، اگر سرور شما در حالت Server Core نصب شده است بایستی دستور زیر را برای نصب Windows Server Backup وارد کنید :

ocsetup WindowsServerBackup


Backup گیری از اکتیودایرکتوری

قبلا از اینکه هر کاری انجام دهید بایستی تنظیمات مربوط به Optimize Backup Performance را برای Windows Server Backup انجام دهید. شما می توانید تنظیمات مربوط به این قسمت را با راست کلیک کردن بر روی Node مربوط به Windows Server Backup در قسمت Storage از کنسول Server Manager پیدا کنید .

بصورت پیشفرض Windows Server Backup همیشه Backup را بصورت Full تهیه می کند اما همانطور که در شکل زیر مشاهده می کنید شما میتوانید به سیستم اعلام کنید که Backup از نوع Incremental تهیه کند. در حقیقت در محیط Server Core هیچگونه دستوری وجود ندارد که شما بتوانید تنظیمات گفته شده را در آن به درستی انجام دهید

به همین دلیل مایکروسافت به شما پیشنهاد می کند که برای اتصال به Server Core برای انجام عملیات Backup حتما از یک سرور که ویندوز سرور 2008 بصورت کامل بر روی آن نصب شده است استفاده کرده و بصورت Remote تنظیمات مربوط به این سرور را انجام دهید.

Backup  گیری از اکتیودایرکتوری

تنظیمات Optimize Backup Performance به شما این اجازه را می دهد که بتوانید برای Windows Server Backup تعیین کنید که VSS Snapshot هایی که پس از انجام هر عملیات Backup بر روی دیسک مبدا یا Source Disk ذخیره می شوند را حذف کند و یا اینکه برای انجام عملیات Backup بعدی نگه دارد . این Snapshot ها به Backup می گویند که از کجا و چه تغییراتی نسبت به بار آخری که Backup گرفته شده است بر روی Volume یا فایل های موجود بر روی دیسک انجام شده است .

زمانی که شما گزینه Incremental را انتخاب می کنید در واقع به سیستم گفته اید که این Snapshot ها برای بار بعدی Backup بر روی سیستم باقی بمانند ، اگر گزینه Full Backup را انتخاب کنید سیستم بصورت خودکار Snapshot ها را پس از انجام عملیات Backup حذف می کند.

نگهداری Snapshot ها برای تهیه Backup در مراحل بعدی به سیستم این امکان را می دهد که تشخیص دهد چه تغییراتی بر روی فایل های موجود بر روی سیستم رخ داده است . بهرحال فراموش نکنید که مشخص شدن تغییرات نیازمند VSS است تا بتواند Backup از نوع incremental را ایجاد کند.

فرآیند incremental Backup طبیعی است که فضای بیشتری نسبت به Full Backup در دیسک مبدا دارد ، زیاد خود Snapshot هایی که بر روی سیستم قرار می گیرند فضا اشغال می کنند. در عین حال نگهداری این Snapshot ها باعث کندی کارایی دیسک می شوند. در سرور هایی که نوشتن و خواندن خیلی زیادی در آنها وجود دارد ، مثلا سرور اتوماسیون اداری سعی کنید از Backup های نوع incremental استفاده نکنید .

خوب کدامیک از این نوع Backup ها برای DC مناسب است ؟ Backup های نوع incremental برای DC ها به دو دلیل بهتر است . دلیل اول اینکه DC بیشتر دارای فرآیند خوانده شدن است تا نوشته شدن ، یعنی بیشتر برای Query گرفتن استفاده می شود.

به همین دلیل در این حالت در صورتیکه شما از VSS استفاده کنید در کارایی سیستم چندان مشکلی ایجاد نخواهد شد . دومین دلیل این است که شما از Shadow Copy می توانید برای بازیابی سایر تنظیمات اکتیودایرکتوری استفاده کنید. برای هر یک از هارد دیسک ها ، شما می توانید مقدار فضایی که برای استفاده برای Snapshot ها نیاز دارید را با استفاده از کنسول Disk Management و همچنین دستور vssadmin.exe که بصورت پیشفرض در سیستم عامل تعبیه شده اند را تعیین کنید.

بر روی یک سیستم عامل سرور 2008 کامل ، شما با استفاده از محیط گرافیکی Windows Server Backup و چند انتخاب ساده براحتی می توانید از سیستم Backup بگیرید. برای اینکار کافیست وارد کنسول Server Manager بشوید و به قسمت Storage و در Windows Server Backup بروید ، از منوی Action گزینه Backup Once را انتخاب کنید و در اینجا براحتی با استفاده از ویزارد مربوطه می نوانید مراحل و تنظیمات مربوط به آن را انجام دهید .

زمانیکه به صفحه Select Backup Item رسیدید ، فقط مطمئن شوید که چک باکس مربوط به Enable System Recovery انتخاب شده است ، اینکار برای اطمینان از درست عمل کردن عملیات بازگردانی اطلاعات اکتیودایرکتوری در مواقع نیاز بکار می رود. توجه کنید که شما Backup را می توانید بصورت برنامه ریزی شده یا Schedule شده نیز تهیه کنید اما برای این لحظه این نوع Backup برای رفع حاجت سریع مورد استفاده قرار میگیرد.


Backup گیری از اکتیودایرکتوری

همانطور که خود شما هم می دانید ، بهترین روش برای ایجاد یک دامین کنترلر استفاده از Server Core است ، این نوع نصب از ویندوز سرور ضمن اینکه امنیت بهتری بصورت پیشفرض نسبت به سایر حالت های نصب ویندوز سرور دارد ، احتمال بروز حملات هکری به سرور را نیز تا حد زیادی کاهش می دهد ، اما قطعا هر چیزی که امنیت بالاتری دارد ، دردسرهای خاص خودش را نیز دارد 

با نصب Server Core شما قطعا بایستی مدیریت سیستم با استفاده از دستورات خط فرمان یا Command Line ها را خوب یاد بگیرید ، در اینجا از محیط زیبای GUI ( گوئی تلفظ شود ) خبری نیست ، خوب برای اینکه بتوانید در محیط Core از سیستم Backup تهیه کنید می توانید از دستورات زیر استفاده کنید ( فقط نوشتم که تو مقاله باشه ، بدون شک کاربرد چندانی در محیط کاری فعلی ندارد ) :

1- برای Backup گرفتن از کل سیستم که شامل تمامی Volume هایی می شود که در آنها فایل های سیستمی و یا اطلاعات اکتیودایرکتوری . ... بصورتیکه بتوان بدون مشکل در صورت بروز مشکل در سیستم آن را از صفر بازگردانی کرد ، می توانید از دستور زیر استفاده کنید :

WBADMIN Start Backup –backupTarget:D:   -allCritical


Backup گرفتن از اکتیودایرکتوری

در این قسمت به جای D: می توانید مسیری که قرار است Backup در آنجا تهیه شود یا همان مقصد Backup را تعیین کنید ، توجه کنید که این D اون D نیست که در مکالمات برای ابراز خنده استفاده می کنید و اسم Volume است . اگر می خواهید در یک مسیر شبکه ای از ویندوز Backup بگیرید بایستی مسیر مقصد ر ا بصورت UNC Path وارد کنید ، قطعا با ساختار UNC آشنایی دارید اما برای اطمینان بایستی مثلا مسیر مقصد به شکل زیر وارد شود :

WBADMIN Start Backup –backupTarget:\\backup.tosinso.com\backupfolder  -allCritical


2- برای Backup گرفتن فقط از System State دستور زیر را وارد کنید :

WBADMIN Start SystemStateBackup   –backupTarget:C:


Backup گیری از اکتیودایرکتوری

توجه کنید که در این دستور دیگر نیازی به وارد کردن سویچ allCritical نیست ، با وارد کردن دستور Start SystemStateBackup تمامی اطلاعات سیستمی بصورت یکجا Backup گرفته می شوند . در هر صورت با وارد کردن هر دو نوع دستور بالا نتیجه در مقصد در قالب یک پوشه به نام WindowsImageBackup و در قالب یک فایل با پسوند VHD ایجاد می شود .

توجه کنید که در اینجا یک سری فایل های XML هم وجود دارند که کلید های رجیستری و یک سری دیگر از تنظیمات سیستم را Backup میگیرند ، شما می توانید محتویات این پوشه را در محل دیگری نیز کپی کنید اما توجه داشته باشید که برای انتقال این Backup بایستی تمامی فایل ها را بصورت یکجا و با حفظ ساختار منتقل کنید ، در غیر اینصورت عملیات Recovery با مشکل مواجه خواهد شد .

Backup گیری از اکتیودایرکتوری

تا زمانیکه از دامین کنترلر خود صرفا به عنوان دامین کنترلر استفاده می کنید ( چون در بسیاری از شرکت ها و سازمان ها دیدم که دامین کنترلر = فایل سرور ، وب سرور ، اکسچنج سرور ، SQL سرور و .... هست ) ترجیحا از نوع Full Backup برای خود Backup تهیه کنید ، در این موراد گرفتن Backup از System State چندان مفید و به صرفه نیست .

توجه کنید که در دامین کنترلری که صرفا به عنوان DC در شبکه کار میکند حجم Backup ای که تهیه می شود در مقایسه با Backup ای که از System State دریافت می شود چندان تفاوتی ندارد . از همه مهمتر توجه کنید که شما با گرفتن Full Backup از سیستم می توانید از این به بعد Backup های خود را بصورت Incremental تهیه کنید و اینکار در Backup هایی که از System State می گیرید امکانپذیر نیست. در نهایت فراموش نکنید که شما با استفاده از Full Backup می توانید System State را بازگردانی کنید اما بر عکس این عمل امکان ندارد.

آموزش بازیابی با System State

خوب در قسمت اول از این سری مقالات با ابزارهایی که بصورت پیشفرض در ویندوز برای گرفتن Backup وجود دارند آشنا شدیم ، در ادامه با ابزارهای Windows Server Backup و wbadmin کار کردیم و به دو صورت Full Backup و System State Backup از ویندوز Backup تهیه کردیم ، اما نکه در اینجاست که هر رفتی یک برگشت دارد و Backup ای مهم است که بتوان آن را بازیابی یا بازگردانی کرد ، در این قسمت به شما آموزش بازگردانی Backup ای که در مرحله قبلی گرفته شده است را آموزش خواهیم داد .

توجه کنید که روش های متعددی برای بازگردانی Backup وجود دارد که در این مقاله صرفا Backup گرفته شده بصورت کامل بازگردانی می شود و در مقاله های بعدی روش های دیگر بازگردانی یا Recovery را با هم بررسی خواهیم کرد . به دلیل اینکه بر اساس ادامه مقالات و بصورت سریالی مقالات را ادامه می دهیم فرض را بر این می گذاریم که شما در مرحله قبلی از سیستم یک Full Backup تهیه کردید.

انجام بازگردانی بکاپ دومین کنترلر یا Complete DC Recovery

Recover کردن یک ویندوز سرور 2008 از Backup گرفتن از آن کمی سخت تر است ، همیشه به خاطر داشته باشید که Backup ای درست است که بتوانید از روی آن اطلاعات خود را بازگردانی کنید . اگر بخواهیم ساختار Recovery در ویندوز سرور 2008 و ویندوز های سرور قبلی را با هم مقایسه کنیم بایستی بگوییم که در ویندوز های قبلی شما در صورت بروز برای سیستم عامل ویندوز سرور ابتدا بایستی سیستم عامل را از نو نصب کرده و سپس Backup گرفته شده را بازگردانی می کردید.

اما در شیوه Backup گیری جدیدی که در ویندوز سرور 2008 مطرح شد شما همانطوری که در مقاله قبلی نیز اشاره شده دیگر نیازی به نصب مجدد سیستم عامل ندارید و با بازگردانی Backup در واقع سیستم عامل را بصورت کامل بازگردانی کرده اید

توجه کنید که به نوعی سیستم Backup گیری جدید مایکروسافت شبیه نرم افزارهای Image گیری از سیستم فعالیت می کنند و از تمامی اطلاعات موجود در یک Volume کپی می گیرند . به همین دلیل کلیه اطلاعات مربوط به یک سیستم عامل کامل در قالب یک فایل VHD ذخیره می شود و به یکباره قابل بازگردانی می باشد . برای انجام عملیات بازگردانی اطلاعات یک سرور بصورت کامل به روش زیر عمل کنید :


1- با استفاده از رسانه ای که توسط آن ویندوز سرور را نصب کرده اید ( خیلی فارسی شد ، یعنی همون DVD که ویندوز رو نصب کردید ) سیستم را بوت کنید و به قسمتی بروید که همیشه برای نصب ویندوز سرور 2008 به آنجا می رفتید به اصطلاح به این قسمت Windows Preinstallation Environment گفته می شود.

2- در صفحه Install Windows به جای اینکه اینبار Install را انتخاب کنید در قسمت چپ و پایین تصویر گزینه Repair را انتخاب کنید . با انتخاب این گزینه ویندوز شما را به صفحه ای به نام Windows Recovery Environment یا Windows RE هدایت می کند ، در این قسمت شما می توانید بسیاری از عملیات های ویندوز مانند تعمیر ( Repair ) و بازیابی ( Recovery ) را انجام دهید . در اینجا Windows RE سیستم را جهت یافتن سیستم عاملی که از قبل نصب شده است بررسی می کند و طبیعی است که در این لحظه نیاز به دسترسی پیدا کردن به هارد دیسک سیستم دارد ، در صورت نیاز در مواقعی که سرور سخت افزاری شما از درایورهایی استفاده می کند که برای ویندوز قابل شناسایی نیستند ، بایستی درایور مربوط به هارد دیسک ها را به ویندوز در قالب DVD یا USB و یا .... معرفی کنید .

آموزش Active Directory Backup and Recovery


3- بعد از اینکه Windows RE سیستم عامل نصب شده بر روی سیستم شما را شناسایی کرد ، بر روی قسمت Windows Complete PC Restore کلیک کنید تا یک بازگردانی کامل سیستم را از طریق Backup گرفته شده بتوانیم انجام دهیم. توجه کنید که این گزینه در ویندوز سرور 2008 نسخه R2 به شکل تصویر بالا نمایش داده می شود.Windows Server Backup در اینجا بصورت خودکار در محتویات موجود در DVD ، هارد دیسک ، USB و هر رسانه دیگری که بر روی سیستم نصب شده است برای پیدا کردن فایل Backup که بایستی از نوع Disk Based باشد جستجو می کند ، طبیعی است که وجود این فایل برای انجام بازگردانی سیستم عامل ضروری است . شما می توانید در اینجا بصورت دستی آدرس یک Network Share را که Backup بر روی آن ذخیره شده است را نیز وارد کنید.

آموزش Active Directory Backup and Recovery


آموزش Active Directory Backup and Recovery


آموزش Active Directory Backup and Recovery


آموزش Active Directory Backup and Recovery


4- در مرحله بعدی فایل Backup یا بهتر بگوییم Backup Source ای که قرار است از طریق آن عملیات بازیابی را انجام دهیم را انتخاب کنید. فراموش نکنید که با یک بازگردانی کامل یا Complete Recovery تمامی اطلاعاتی که در مقصد وجود دارند به کلی حذف شده و در واقع یک Block-Level Restore خواهیم داشت که کلیه اطلاعات را به یکباره بازگردانی می کند. اگر در هنگام Backup گیری چندین Volume از سیستم را Backup گرفته اید ، می توانید تعیین کنید که کدامیک بازگردانی شوند ، بدین ترتیب اطلاعات مربوط به Volume های دیگر دست نخورده باقی می ماند. شک نکنید که سیستم به شما در خصوص حذف اطلاعات موجود بر روی سیستم به شما هشدار خواهد داد و باز هم شکی نیست که شما در این لحظه حساس این ریسک را می پذیرید و آن را تایید می کنید.

آموزش Active Directory Backup and Recovery


5- بعد از اینکه فرآیند Recovery انجام شد ، سیستم بصورت خودکار Restart شده و دامین کنترلر شما در حالت آنلاین قرار می گیرد. بعد از اینکه سیستم عامل به درستی Boot شد ، دامین کنترلر اطلاعات اکتیودایرکتوری خود را با سایر دامین کنترلرهای موجود در دامین Synchronize و بروز رسانی می کند ، تمامی تغییراتی که بعد از گرفتن Backup در ساختار اکتیودایرکتوری ایجاد شده است با این روش براحتی یکسان سازی و بروز می شود.

آموزش Active Directory Backup and Recovery


آموزش Active Directory Backup and Recovery


خوب قطعا الان خوشحال هستید که دامین کنترلر شما به حالت عادی برگشته و شروع به فعالیت کرده است ، اما همیشه باید یک چیز را مد نظر داشته باشید ، همیشه قرار نیست دامین کنترلر شما به کلی از بین برود و شما مجبور باشید که کل اطلاعات آن را بازگردانی کنید ، برخی اوقات پیش می آید که شما بصورت تصادفی یک شیء مانند یک OU و یا یک کاربر را حذف می کنید
در اینجا شما نمی توانید به خاطر حذف شدن یک کاربر ، کل اطلاعات دامین کنترلر را مجددا بازگردانی کنید ، از طرفی کار به این سادگی های هم نیست که شما فکر می کنید ، همانطور که خودتان می دانید ساختار اکتیودایرکتوری Replication را بر اساس تاریخ و زمان انجام می دهد ( البته در ساده ترین تعریف ممکن ) و فرض کنید که شما برای بازگردانی اطلاعات یک کاربر حذف شده مجبور هستید کل اطلاعات اکتیودایرکتوری را بازگردانی کنید ، چه اتفاقی می افتد ؟

خوب خیلی ساده است ، Backup را به روش گفته شده بازگردانی کرده و کاربر حذف شده ما به دلیل وجود داشتن در اطلاعات موجود در Backup قبلی قاعدتا بایستی بازگردانی شود ، اما به محض اینکه سرور Restart می شود و شما وارد سرور می شوید ، به نکته جالبی بر می خورید ، کاربر حذف شده وجود ندارد !!!! بله وجود ندارد، توجه کنید که به محض اینکه شما شیئی را بازیابی کنید و سپس اطلاعات اکتیودایرکتوری در میان دامین کنترلرها Replicate شود
به دلیل اینکه اطلاعات موجود در سایر دامین کنترلرها بروزتر از اطلاعات دامین کنترلر بازیابی شده است اطلاعات آنها بر روی اطلاعات این دامین کنترلر Override می کند و در نتیجه کاربری که حذف شده .... مجددا پس از بازیابی حذف خواهد شد ، برای رفع این مشکل در مقاله ای جداگانه در خصوص نحوه بازیابی اطلاعات در اکتیودایرکتوری بصورت Authoritative Restore صحبت خواهیم کرد ، فعلا این موضوع را در ذهن خود داشته باشید.

آموزش بازگردانی System State

اگر شما صرفا قصد بازگرداندن اطلاعات اکتیودایرکتوری را دارید ، می توانید صرفا System State Backup را بازگردانی کنید. در اینجا بایستی توجه کنید که دیگر این نوع از Backup قادر به بازگردانی سیستم عامل شما نمی باشد بنابراین شما نیاز به وجود یک سیستم عامل سالم برای بازگرداندن اطلاعات System State دارید ، از آنجاییکه Windows Server Backup در حالت Boot و البته در غیر حالت Boot سیستم قادر به بازگردانی اطلاعات System State نیست

شما بایستی در اینحالت از ابزار خط فرمانی یا همان wbadmin معروف استفاده کنید ، بازگردانی اطلاعات System State طبیعی است که دشوارتر از بازگردانی کامل یک سیستم است اما اگر با سری ویندوز های سرور قبلی مایکروسافت کار کرده باشید متوجه خواهید شد که تا حدود زیادی به همان روشی انجام می شود که در گذشته انجام می شده است. برای بازگردانی اطلاعات System State به روش زیر عمل کنید :

1- دامین کنترلر را Restart کنید و در حین عملیات Boot کلید F8 را بزنید تا به شما گزینه Directory Services Restore Mode یا DSRM نمایش داده شود ، این گزینه را انتخاب کرده و با رمز عبور DSRM که در هنگام ایجاد عملیات dcpromo در آخرین مرحله برای سیستم انتخاب کردید وارد سیستم شوید ، طبیعی است که در این حالت اکتیودایرکتوری وجود ندارد که شما بخواهید با کاربران آن وارد سیستم شوید ، همیشه به دانشجویان کلاس تاکید میکنم که رمزی برای DSRM انتخاب کنید که آن را فراموش نکنید ، در اینجا هم فرض را بر این می گذاریم که شما رمز عبور را فراموش نکرده اید و با حالت DSRM وارد سیستم شده اید.

آموزش Active Directory Backup and Recovery


2- Command Prompt را باز کرده و دستور زیر را برای نمایش Version نسخه های Backup ای که تهیه کرده اید با ذکر مسیر وارد کنید:

wbadmin get versions   -backupTarget:drive_or_share   machine:servername

توجه کنید که در اینجا driveorshare مسیری است که Backup شما در آن قرار گرفته است و servername نام ماشینی است که بایستی بازیابی شود. خروجی این دستور بایستی به شکل زیر باشد :

Wbadmin get versions –backuptarget:E:

آموزش Active Directory Backup and Recovery



3- از نتیجه ای که در خروجی مشاهده می کنید Backup Version ای که می خواهید برای System State Recovery استفاده کنید را انتخاب کنید . شما System State را بر اساس هر کدام از این Backup ها که در لیست مشاهده می کنید می توانید بازیابی کنید ، برای استفاده در مرحله بعدی (version identifier ( 01272008-15:18 را کپی کنید .

4- با استفاده از دستور wbadmin و انتخاب backup version ای که در مرحله قبلی دیدید مشابه زیر system state را recover کنید:

wbadmin Start SystemStateRecovery   -version:versionid  -backupTarget:drive_or_share   -machine:servername

wbadmin start systemstaterecovery –version:01/05/2013-04-53 –backuptarget:E: -machine:pdc

آموزش Active Directory Backup and Recovery


5- بعد از اینکه عملیات Recovery به درستی انجام شد سرور به شما پیغام می دهد که می خواهد Restart شود . اگر می خواهید یک شیء خاص را با استفاده از روش Authoritative Restore بازگردانی کنید ، reboot نکنید و با استفاده از روش هایی که از ابزار ntdsutil استفاده می شود کار خود را انجام دهید ، در این خصوص در مقاله بعدی بصورت مفصل صحبت خواهیم کرد ، فعلا کاری با سرور نداشته باشید و آن را reboot کنید.

6- در اینجا سرور شما reboot می شود و تمامی فایل هایی که در Backup گرفته شده وجود دارد بر روی فایل های موجود بر روی سیستم کپی و در واقع replace می شوند . توجه کنید که ممکن است سیستم چندین بار reboot شود ، عملیات reboot برای انجام recovery صحیح از System State یک امر ضروری است و بایستی به درستی انجام شود . تا زمانیکه سرور بصورت کامل بازیابی نشده است شما نمی توانید صفحه ورود به سیستم را مشاهده کنید ، اما به محض رویت logon screen مطمئن باشید عملیات recovery به درستی انجام شده است.

دومین مقاله از سری مقالات Backup گیری از اکتیودایرکتوری نیز به اتمام رسید ، در این دو مقاله شما آموختید که چگونه برنامه Backup گیری از دامین کنترلر ها و همچنین Recovery کردن آنها را طراحی و انجام دهید . این اطلاعات حتی می تواند به شما در جهت ایجاد ساختار دامین کنترلر ها و برنامه ای که شما برای طراحی ساختار هارد دیسک خود دارید نیز کمک کند
اگر توجه کرده باشید ما برای گرفتن Backup کامل از DC نیاز به یک Volume غیر از Volume ای داشتیم که در آن سستم عامل را نصب کرده ایم ، بنابراین در طراحی ساختار DC بایستی به این نکته توجه کنید که یک پارتیشن جدا برای اینکار در نظر بگیرید.
پیشنهاد من به شما برای تهیه Backup از نوع Full Backup می باشد ، همانطور که قبلا نیز اشاره کردیم ، شما با استفاده از این روش ضمن اینکه به سادگی می توانید اطلاعات DC خود را بازگردانی کنید ، می توانید بصورت جداگانه از اطلاعات System State نیز بازگردانی داشته باشید . با استفاده از ساختار Full Backup شما می توانید از اطلاعاتی که به سیستم عامل شما اضافه شده است بصورت Incremental نیز Backup داشته باشید.

در این دو قسمت هدف بیشتر آشنایی با ساختار کارکرد سیستم backup گیری خود ویندوز و بازگردانی اطلاعات توسط همین ابزارها بود ، در مقاله های بعدی به شما آموزش می دهیم که چگونه کاری کنید که بدون نیاز به استفاده از DSRM و یا بازگردانی System State و حتی بدون نیاز به restart کردن سرور بتوانید اطلاعات از دست رفته یا حذف شده را بازگردانی کنید ، در مقاله بعدی بصورت خاص روش بازگردانی یک شیء حذف شده از ساختار اکتیودایرکتور را به شما نمایش خواهیم داد به گونه ای که پس از اینکه عملیات بازگردانی و Replication بین دامین کنترلرها انجام شد این شیء از ساختار حذف نشود

آموزش Restore کردن

در قسمت های قبلی با روش های مختلف Backup گیری و بازگردانی کلی سیستم و System State آشنا شدید ، اما همیشه شرایط به شکلی که گفته شد جلو نمی رود ، دقت کنید که برخی اوقات پیش می آید که شما نمی خواهید کل یک دامین کنترلر را بازیابی کنید در واقع اصلا دامین کنترلر مشکلی ندارد که بخواهید آن را بازیابی کنید ، اما بر حسب اتفاق و بصورت ناخواسته یکی از اشیاء شبکه شما حذف می شود .

مثلا کاربری به نام M.Nasiri بصورت تصادفی حذف شده است . خوب در اینجا دیگر منطقی نیست که بخواهیم کل اطلاعات یک دامین کنترلر را بازگردانی کنیم ، آن هم فقط به خاطر یک کاربر حذف شده ، بگذریم از اینکه حتی اگر در حالت عادی عملیات بازگردانی را انجام دهیم باز هم کاربر مورد نظر بعد از عملیات Replication بین دامین کنترلر ها حذف خواهد شد . خوب چاره چیست ؟ برای اینکه درک بهتری از این موضوع داشته باشید انواع بازگردانی یا Restore کردن اطلاعات در اکتیودایرکتوری را بررسی می کنیم.

انواع بازگردانی یا Recovery اطلاعات در اکتیودایرکتوری

  1. Non-Authoritative Restore : اینگونه Restore بیشتر زمانی پیش می آید که دامین کنترلر شما در اثر مشکلات سخت افزاری یا نرم افزاری دچار مشکل شده است و دیگر قادر به ارائه سرویس نمی باشد . در این نوع از Restore کردن کلیه اطلاعات اکتیودایرکتوری که در Backup گرفته شده وجود دارد به یکباره به سرور بازگردانده می شود و بعد از اینکه سرور به حالت فعال در آمد ، با استفاده از فرآیند Replication بین دامین کنترلرها ، اطلاعاتی که در این مدت در دامین کنترلرهای دیگر بروز رسانی شده است را دریافت کرده و به روز می شود . دو نوع بازگردانی که در مقاله قبلی اشاره کردیم ، هر دو به شکل Non-Authoritative Restore بودند.
  2. Authoritative Restore :اینگونه از Restore بیشتر زمانی انجام می شود که یک تغییری که در ساختار Directory Services یا همان اکتیودایرکتوری انجام شده است بایستی به حالت قبلی آن بازگردد ، مثلا بصورت تصادفی و به اشتباه یک کاربر یا یک OU از اکتیودایرکتوری حذف شده است و بایستی بازگردانی شود . در این فرآیند شیء حذف شده ضمن اینکه بازگردانی می شود خود را با سایر اطلاعات یا بهتر بگوییم با سایر دامین کنترلرهای مجموعه Replicate می کند ، اما اینبار Replication سایر دامین کنترلرها تاثیری بر روی آن نداشته و آنرا مجددا حذف نمی کند و این شیء بر روی سایر اطلاعات موجود در دامین Overwrite می کند . مزین این نوع بازگردانی این است که شما دقیقا می توانید تعیین کنید که چه شیئی را به عنوان Authoritative در نظر گرفته شود . مثلا شما یک OU را به اشتباه حذف کرده اید و تنها این شیء را به عنوان Authoritative برای بازگردانی در نظر می گیرید ، بعد از عملیات بازگردانی ، تمامی اطلاعات در قالب فرآیند Replication از سایر دامین کنترلرها بر روی این دامین کنترلر Overwrite می شود به غیر از این OU که بر خلاف جهت عمل می کند بدین معنا که اطلاعات این OU بصورت استثناء بر روی اطلاعات موجود در سایر دامین کنترلر ها Overwrite می کند.

بازگردانی اطلاعات اکتیودایرکتوری معمولا به دو روشی انجام می شود که اشاره شد. اما سئوال اول اینجاست که اکتیودایرکتوری از کجا متوجه می شود که یک شیء بایستی بر روی سایر اشیاء Overwrite شود ؟ چرا بعد از فرآیند Replication این شیء که از نظر سایر دامین کنترلرها حذف شده می باشد مجددا به اکتیودایرکتوری باز می گردد و به عنوان یک شیء جدید معرفی می شود ؟
سئوال دوم در اینجاست که آیا ما می توانیم Backup را از هر زمانی که گرفته ایم بازگردانی کنیم ؟ مثلا Backup ای که یک مدیر شبکه از اکتیودایرکتوری گرفته است به 6 ماه پیش بر می گردد ! آیا ما می توانیم چنین Backup ای را بدون مشکل بازگردانی کنیم ؟ جواب این دو سئوال به دو خاصیت در اکتیودایرکتوری بر می گردد که به شرح زیر می باشند :

  • Update Sequence Number یا USN : اکتیودایرکتوری و بسیاری از Directory Service های دیگر برای اینکه بتوانند تغییرات انجام شده بر روی اشیاء را برای انجام عملیات Replication بیابند از فاکتور زمان استفاده می کنند ، اما فاکتور زمان چیز ثابت و قابل اتکایی نیست و می تواند بر حسب شرایط زمانی و مکانی و همچنین اشتباهات سهوی و عمدی دچار اختلال شود ، بنابراین اکتیودایرکتوری از یک ساختار شماره گذاری به نام Sequence Number برای شناسایی تغییرات و بروز بودن اشیاء استفاده می کند ، این شماره در هر دامین از یک Forest بصورت مشخصی ایجاد می شود و در قالب incremental بروز رسانی می شود ، هر چقدر این Update Sequence Number بیشتر باشد در نتیجه شیء بروز تر می شود و بر روی سایر اشیاء مشابه در هنگام Replication جایگزین می شود . در عملیات بازگردانی به روش Authoritative شما این عدد را آنقدر بالا می برید تا از عدد فعلی که وجود دارد بالاتر شود و در نتیجه در هنگام Replication بر روی سایر اطلاعات مشابه در دامین کنترلرهای دیگر Overwrite می کند. برای اینکه بتوانید USN یک شیء در اکتیودایرکتوری را مشاهده کنید ابتدا وارد کنسول Active Directory Users and Computers شوید و سپس از منوی View گزینه Advanced را انتخاب کنید و در نهایت بر روی هر کدام از Object ها که راست کلیک کنید تب جدیدی به نام Object را مشاهده خواهید کرد که Update Sequence Number را به شما نمایش می دهد.

Update Sequence Number  در اکتیودایرکتوری


  • Tombstone Lifetime یا تاریخ انقضا (ترجمه بهتری پیدا نکردم براش) : با توجه به تعریف خوبی که در مقاله مهندس خلیفی در خصوص این موضوع ارائه شده من بیشتر توضیح نمیدم ، Tombstone Lifetime که ترجمه آن طول عمر سنگ قبر می باشد در واقع تاریخ انقضای یک شیء حذف شده یا بهتر بگوییم یک Object حذف شده در ساختار اکتیودایرکتوری را تعیین می کند ، زمانی که شما یک Object را از ساختار اکتیودایرکتوری حذف می کنید ، این Object بلافاصله از این ساختار حذف نخواهد شد و در واقع در یک Recycle Bin در اکتیودایرکتوری قرار می گیرد ، مدت زمانی که این Object در این Recycle Bin قرار دارد تا زمانی که بصورت کامل از اکتیودایرکتوری حذف شود را به اصطلاح فنی Tombstone Lifetime می گوییم . حال فرض را بر این بگیرید که Backup ای که شما تهیه کرده اید برای 6 یا 7 ماه پیش است و در نتیجه tombstone آن به اتمام رسیده است و برای اکتیودایرکتوری غیر قابل بازگردانی محسوب می شود ، این همان دلیلی است که شما بایستی بصورت هفتگی با ماهیانه از اکتیودایرکتوری خود Backup بگیرید.

خوب نکات بالا رو حتما خوب مطالعه کنید ، با توجه به مثال هایی که در هر دو مورد مطرح شد حتما متوجه شدید که اگر به عنوان رهکار Backup گیری از ابزارهای Image گیری استفاده کنید و مثلا ایمیج ماه پیش رو در هنگام بروز مشکل بازگردانی کنید و یا اگر دامین کنترلر خودتون رو در محیط های مجازی مثل VMware نصب کردید و ازش Snapshot گرفتید ، وقتی این Snapshot رو بر می گردونید چه فاجعه ای ممکنه پیش بیاد !!! پس به این نکته خیلی خیلی توجه کنید و به عنوان تکلیف شب برای خودتون 10 بار تکرارش کنید : من هیچوقت از Image و Snapshot برای برگرداندن اطلاعات اکتیودایرکتوری استفاده نمی کنم ...

نکته های Backup گیری از اکتیودایرکتوری


خوب امیدوارم که مطالب بالا را به درستی مطالعه کرده باشید ، به سراغ بازگردانی اطلاعات یک شیء حذف شده در اکتیودایرکتوری می رویم ، برای انجام اینکار ابتدا بایستی System State را بازگردانی کنیم و سپس قبل از Restart کردن سیستم دستورات لازم را بایستی وارد کنیم ، در مقاله قبلی در خصوص شیوه بازگردانی اطلاعات System State توضیحاتی را ارائه دادم و فکر نمی کنم نیازی باشد که دوباره مطالب مربوط به آن را تکرار کنیم بنابراین به مراحلی که بعد از بازگردانی System State بایستی انجام شود اشاره می کنیم.

بعد از اینکه System State را با استفاده از قسمت قبلی بازگردانی کردید ، دیگر سیستم را بر خلاف مقاله قبلی دیگر Restart نکنید و در اینجاست که بایستی با استفاده از دستور ntdsutil مجددا به سیستم شیء مورد نظرمان را برای بازگردانی مشخص کنیم ، دقت کنید که ما برای نمایش اشیاء در اکتیودایرکتوری از ساختار نامگذاری Distinguished Name یا همان DN استفاده می کنیم و در اینجا نیز برای مشخص کردن شیء مورد نظر بایستی با ساختار نامگذاری DN آشنایی داشته باشیم. در این مثال ما قصد داریم یک شیء با ساختار DN به شکل زیر را بازگردانی کنیم :
CN=Test User,CN=Users,DC=home,DC=local
برای انجام اینکار بایستی دستورات زیر را بعد از بازگردانی System State در CMD وارد کنید :

ntdsutil
activate instance ntds
authoritative restore
restore object “cn=Test User,cn=Users,dc=home,dc=local” 
Authoritative Restore در اکتیودایرکتوری



با وارد کردن دستورات بالا وصرفا کاربری با نام کاربری Test که در دامین home.local قرار دارد بازگردانی می شود و در واقه به عنوان یک شیء Authoritative در نظر گرفته می شود ، می توانید نتیجه را که مشابه تصویر بالا می باشد مشاهده کنید ، بعد از انجام این عملیات می توانید سیستم را Restart کرده و مطمئن باشید که کاربر مورد نظر بازگردانی شده است .

دقت کنید که در دستور ذکر شده وجود علامت "" برای ساختار نامگذاری DN الزامی است. هنوز مبحث Backup گیری از اکتیودایرکتوری به پایان نرسیده است و چند روش دیگر در این خصوص وجود دارد که در قسمت بعدی در خصوص این روشها که تهیه Snapshot و همچنین فعال سازی و استفاده از قابلیت Active Directory Recycle Bin می باشد صحبت خواهیم کرد.

آموزش  Snapshot گرفتن از AD

در سه قسمت قبلی با شیوه Backup گرفتن از کل سیستم ، Backup گرفتن از System State و همچنین بازگردانی هر یک با روش های مختلف صحبت کردیم . در این مقاله می خواهیم شما را با قابلیت جدید دیگری که در ویندوز سرور 2008 اضافه شده است آشنا کنیم که با نام Active Directory Snapshot شناخته می شود .

اگر با محیط های مجازی سازی کار کرده باشید حتما با قابلیتی به نام Snapshot تا حدودی آشنایی دارید ، فرض کنید که در نرم افزار مجازی سازی VMware Workstation یک سیستم عامل ویندوز سرور یا لینوکس نصب کرده اید و می خواهید که یک سری تغییرات را بر روی سیستم عامل Guest انجام دهید که ممکن است سیستم عامل را دچار اختلال کند .

در اینجا با استفاده از قابلیت Snapshot از سیستم عامل موجود در VMware یک Snapshot تهیه می کنیم ، اما این Snapshot چه استفاده ای دارد ؟ زمانیکه سیستم عامل شما بعد از انجام شدن تغییرات مد نظر شما دچار مشکل بشود ، شما براحتی می توانید با بازگردانی اطلاعات موجود در Snapshot سیستم را به همان وضعیتی بازگردانید که قبلا به درستی فعالیت می کرده است . این دقیقا همان چیزی نیست که در Active Directory Snapshot مشاهده خواهید کرد ، اما به شما دیدگاهی در خصوص اینکه ماهیت کاری Snapshot ها در اکتیودایرکتوری چیست را می دهد.

در مقاله های قبلی مشاهده کردید که برای بازگردانی هی چیزی از اکتیودایرکتوری ، از کل سرور گرفته تا یک شیء خاص می بایست سرور را حداقل یکبار restart کرده و با استفاده از قسمت Directory Services Restore Mode آنرا بازیابی می کردیم ، اما اشاره ای به این موضوع هم داشتیم که ما میتوانیم با یک سری از قابلیت هایی مثل Snapshot و Recycle Bin در اکتیودایرکتوری ، بدون اینکه نیاز به Restart کردن یا هر مسئله اینچنینی داشته باشیم ، شیء حذف شده را بازیابی کنیم .

مزیت اصلی تهیه Snapshot از اکتیودایرکتوری این است که شما دیگر نیازی به restart کردن و down کردن سرور خود ندارید و براحتی می توانید اشیاء حذف شده را بازیابی کنید. دقت کنید که درست است که مبحث Snapshot را در مجموعه مقالات Backup گیری از اکتیودایرکتوری مطرح کرده ایم اما در واقع این روش یک روش Backup گیری به حساب نمی آید و زمانی که سرور شما بصورت کامل تخریب شود رسما کاری از این نوع قابلیت برای شما ساخته نیست.

Active Directory Snapshot چیست؟

یک Snapshot در واقع یک shadow copy یا یک کپی کامل از اطلاعات موجود در اکتیودایرکتوری است که با استفاده از سرویس Volume Shadow Copy Service یا همان VSS ایجاد می شود و تمامی Volume هایی که اطلاعات پایگاه داده اکتیودایرکتوری و همچنین Log File های آن را در خود دارند را در برمی گیرد.

با استفاده از این روش و پس از تهیه Snapshot شما قادر خواهید بود اطلاعاتی که درون این Snapshot قرار گرفته اند را بدون نیاز به restart کردن Domain Controller و استفاده از DSRM مشاهده کنید ، بدون اینکه چیزی را بازیابی کنید .

ویندوز سرور 2008 امکانی را برای شما فراهم کرده است که توسط آن می توانید Snapshot هایی از اکتیودایرکتوری تهیه کنید و بصورت آفلاین از آن استفاده کنید. با استفاده از AD Snapshot شما می توانید یک Backup از ADDS که قبلا با استفاده از همین روش گرفته شده است را با شماره پورت متفاوتی نسبت به پورت پیشفرض LDAP به وسیله پروتکل LDAP به سرور خود Mount کنید .

توجه کنید که از Snapshot هایی که از اکتیودایرکتوری گرفته شده است بایستی مشابه اطلاعات یک Domain Controller محافظت شود ، مثلا آنها را رمزنگاری کرده و از دسترسی های غیرمجاز محافظت کنیم . از Snapshot های اکتیودایرکتوری در سناریو های معمولا مشخصی استفاده می شود ، مثلا شخصی تنظیمات نامشخصی را بر روی اکتیودایرکتوری انجام داده است و ممکن است آن را دچار مشکل کرده باشد به همین دلیل شما با استفاده از Snapshot آنرا به حالت قبل از انجام تنظیمات باز می گردانید.

شما همچنین می توانید Snapshot گرفته شده را در این لحظه با استفاده از یک پورت غیر از پورت های پیشفرض ویندوز سرور به سیستم Mount کرده و براحتی تغییراتی که اعمال شده را از این Snapshot خروجی یا Export گرفته و به اکتیودایرکتوری اصلی معرفی کنید. یکی از مرسوم ترین سناریو های بازگرداندن اشیاء حذف شده با استفاده از Export گرفتن از Snapshot و Import کردن در ADDS فعال می باشد.

زمانیکه شما یک Snapshot را mount و متصل کردید قادر خواهید بود اطلاعات اکتیودایرکتوری و تمامی اشیائی که در آن وجود داشته است را مشابه آنچه در زمان Backup گیری بوده است مشاهده کنید. اما توجه کنید که در اینجا به شما اجازه کپی کردن یا Move کردن اشیاء به پایگاه داده موجود در اکتیودایرکتوری داده نخواهد شد . برای انجام اینکار همانطور که اشاره شد شما ابتدا بایستی شیء مورد نظر را Export کرده و در پایگاه داده موجود Import کنید.

ممکن است در بار اولی که عملیات های ایجاد ، mount کردن ، متصل کردن ، قطع اتصال ، unmount کردن و شاید حذف کردن را در snapshot ها انجام می دهید کمی برای شما سخت باشد ، اما اگر اینکار را چندین بار انجام دهید دیگر مشکلی با این موارد نخواهید داشت ، ما در هر صورتیکه بخواهید حساب کنید اینکار ساده تر از restart کردن دامین کنترلر و بالا آمدن با DSRM و Restore کردن System State و انجام یک عملیات Authoritative Restore است . خوب به سراغ انجام عملیات Snapshot گیری بصورت عملی می رویم.

آموزش Snapshot گرفتن از اکتیودایرکتوری

برای اینکه بتوانید یک Active Directory Snapshot ایجاد کنید بایستی از ابزاری بسیار معروف در زمینه مدیریت Directory Service به نام NTDSUTIL استفاده کنید. این ابزار بصورت پیشفرض بر روی ویندوز سرور 2008 نصب شده است و شما کافیست بعد از نصب کردن نقش Active Directory Domain Services بر روی سرور به Command Prompt رفته و آن را اجرا کنید . خوب برای ایجاد Snapshot مراحل زیر را به دقت انجام دهید :

1-به دامین کنترلر خود با استفاده از یک حساب کاربری که عضو گروه Domain Admins می باشد وارد شوید .

2- از طریق منوی استارت Command Prompt یا همان CMD را باز کنید ، توجه کنید که به دلیل اینکه نیاز به دسترسی های مدیریتی برای انجام اینکار می باشد ابتدا بر روی آیکن CMD راست کلیک کرده و سپس گزینه Run As Administrator را انتخاب کنید که دستورات NTDSUTIL با دسترسی مدیریت اجرا شوند.

3-در صفحه CMD باز شده دستور زیر را وارد کنید و Enter را بزنید :
Ntdsutil
Snapshot گرفتن از اکتیودایرکتوری


4-سپس دستور زیر را وارد کرده و مجددا Enter را بزنید :
Snapshot

Snapshot گرفتن از اکتیودایرکتوری


نکته : دقت کنید که دستوراتی مانند ntdsutil ساختاری سلسله مراتبی دارند و مرتب بایستی دستوراتی که مد نظر داریم را یکی پس از دیگری وارد کرده و کلید Enter را بزنیم ، در هر جایی از این دستور که برای شما ابهامی پیش بیاید می توانید با استفاده از کلید ؟ یا همان علامت سئوال از راهنمای دستور استفاده کنید ، ضمنا دقت کنید که دستوراتی مانند snapshot در ntdsutil را می توان بصورت مخفف نیز وارد کرد ، مثلا می توان به جای استفاده از snapshot کلمه sna را وارد کرد و همان نتیجه را مشاهده کرد.

5-قبل از اینکه بتوانید سایر دستورات Snapshot را وارد کنید شما بایستی با استفاده از ntdsutil یک Activate Instance تعریف کنید ، برای انجام اینکار دستوری مشابه آنچه در پایین می بینید را بایستی وارد کنید :
Activate instance ntds

Snapshot گرفتن از اکتیودایرکتوری


نکته : نتیجه دستور بالا بایستی چیزی شبیه به موراد زیر باشد :
snapshot: Activate Instance ntds
Active instance set to "ntds".

6-در همان صفحه CMD دستور زیر را برای ایجاد Snapshot وارد کنید :
Create

Snapshot گرفتن از اکتیودایرکتوری


نکته : نتیجه دستور بالا بایستی به چیزی شبیه به موارد زیر باشد :

snapshot: create
Creating snapshot...
Snapshot set {3a861a35-2f33-4d7a-8861-a10e47afdaba} generated successfully

7-برای مشاهده تمامی Snapshot های گرفته شده در سیستم می توانید دستور زیر را وارد کنید :
List all

Snapshot گرفتن از اکتیو دایرکتوری


نکته : نتیجه دستور بالا بایستی چیزی شبیه به موارد زیر باشد :

snapshot: create
snapshot: List All
 1: 2008/10/25:03:14 {ec53ad62-8312-426f-8ad4-d47768351c9a}
 2: C: {15c6f880-cc5c-483b-86cf-8dc2d3449348}

8-آخرین مرحله خروج از ntdsutil هست که باید 2 بار دستور quit رو وارد کنید تا از محیط خارج بشید.

نکته : ابزار NTDSUTIL این قابلیت را به شما می دهد که کلیه دستورات بالا را به صورت یک خط به شکل زیر وارد کنید و همان نتایج بالا را بدست بیاورید :
ntdsutil "Activate Instance NTDS" snapshot create quit quit

آموزش Mount کردن یک Active Directory Snapshot

قبل از اینکه بتوانید به یک Snapshot متصل شوید بایستی آن را mount کنید. به نتایج دستور list all که در مرحله هفتم در همین مقاله اشاره شده نگاه کنید و Snapshot ای را که می خواهید mount کنید را به همراه شماره ای که در کنار آن نوشته شده است انتخاب کنید. برای اینکه بتوانید عملیات mount کردن را به درستی انجام دهید ، مراحل زیر را دنبال کنید :

1- Command Prompt را در حالت Privileged Mode یا همان دسترسی مدیریتی باز کنید و دستور زیر را وارد کنید و Enter را بزنید :
Ntdsutil
Snapshot گرفتن از اکتیودایرکتوری


2- سپس دستور زیر را وارد کرده و مجددا کلید Enter را بزنید :
Snapshot

Snapshot گرفتن از اکتیودایرکتوری


3-برای مشاهده لیست Snapshot های موجود از دستور List All مطابق شکل زیر استفاده کنید :
List all
Snapshot گرفتن از اکتیودایرکتوری


نکته : نتیجه دستور چیزی شبیه تصویر زیر خواهد بود :
snapshot: List All
 1: 2008/10/25:03:14 {ec53ad62-8312-426f-8ad4-d47768351c9a}
 2: C: {15c6f880-cc5c-483b-86cf-8dc2d3449348}

4-خوب در این مثال ما فقط یک Snapshot تهیه کردیم که تاریخ آن نیز در جلو آن نوشته شده است ، برای اینکه این Snapshot را برای mount کردن انتخاب کنیم ، کافیست دستور زیر را وارد کنید :
mount 7
Snapshot گرفتن از اکتیودایرکتوری


نکته :نتیجه چیزی شبیه به تصویر زیر خواهد بود :
snapshot: mount 7
Snapshot {15c6f880-cc5c-483b-86cf-8dc2d3449348} mounted as C:'$SNAP_200810250314_VOLUMEC$'
5-خوب مانند مراحل قبلی دو بار بایستی دستور quit را وارد کنید تا از محیط ntdsutil خارج شوید.

نکته : همانند تمامی مواردی که توسط ابزار ntdsutil انجام می شوند ، شما می توانید تمامی موارد خواسته شده را در قالب یک خط بیان کنید و برای انجام اینکار کافیست دستوری شبیه به آنچه در ادامه می بینید را وارد کنید :
ntdsutil snapshot "list all" "mount 2" quit quit

دقت کنید که زمانیکه شما نیاز به unmount کردن Snapshot بعد از استفاده از آن را داردی ممکن است نیازی نباشد شما دستور quit را وارد کنید .

آموزش متصل شدن به  Snapshot اکتیودایرکتوری

برای اتصال به یک Snapshot ای که در مرحله قبلی mount کرده ایم ، شما می توانید از دستور DSAMAIN استفاده کنید . DSAMAIN دستوری است که بصورت پیشفرض در ویندوز سرور 2008 تعبیه شده است. البته قطعا شما زمانیکه ویندوز را بدون هیچگونه نقشی و بصورت خام نصب کرده اید این دستور کاربردی ندارد

زمانیکه شما یکی از نقش های Active Directory Domain Services و یا Active Directory Lightweight Directory Services را نصب کنید این دستور قابل استفاده خواهد بود .بعد از اینکه توانستید با استفاده از DSAMAIN محتویات اطلاعاتی Snapshot را نمایش دهید .

از این به بعد می توانید با استفاده از هرگونه ابزار گرافیکی یا GUI که بتواند بر روی یک port خاص با directory Service ارتباط برقرار کند ، مثلا Active Directory Users and Computers ، ADSIEDIT و یا LDP.EXE و ... ، شما حتی میتوانید محتویات اطلاعاتی مورد نظر خود را با استفاده از ابزارهای خط فرمانی مانند LDIFDE و یا CSVDE از Snapshot Export بگیرید و در اکتیودایرکتوری فعال خود Import کنید. در خصوص نحوه استفاده از DSAMAIN و مشاهده و خروجی گرفتن اطلاعات از اکتیودایرکتوری در مقاله ای جداگانه بصورت مفصل بحث خواهیم کرد.


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات