مباحث تکمیلی Group Policy
همانطور که گفته شد، زمانی که کامپیوتر روشن شود و دسترسی به شبکه ایجاد شود، ویندوز یک نسخه از Group Policy مربوط به خود را فقط شامل تنظیمات Computer Configuration در AllUsersProfile%Ntuser.pol% ایجاد می کند. این در واقع همان لیستی است که در بحث فرآیند سیاست های گروهی گفته شد. پس از آنکه کاربر به سیستم وارد می شود (Login) نسخه دیگری از Group Policy را در UserProfile%Ntuser.pol% می سازد. سپس برای آنکه همیشه کاربر و کامپیوتر شامل آخرین سیاست ها باشد، در زمان های مشخص بازسازی می شود.به صورت پیش فرض Group Policy دامین کنترلر ها هر 5 دقیقه یک بار و در خصوص workstationها و سایر سرور ها هر 90 تا 120 دقیقه یک بار بازسازی می شود. به اضافه آنکه به صورت پیش فرض Group Policy هر 16 ساعت یکبار بدون توجه به آنکه آیا تغییری صورت گرفته یا خیر، بازسازی می شوند. نکته قابل توجه آن است که به صورت پیش فرض زمان بازسازی سایر سرور ها 90 دقیقه است، اما یک تاخیر 30 دقیقه برای کنترل ترافیک در نظر گرفته شده است.
فاکتورهای دیگری می توانند در بازسازی Group Policy نقش داشته باشند. همانند سرعت پایین لینک ارتباطی یا اجبار کردن در بازسازی و… . البته آخرین بازسازی سیاست های گروهی قابل چک کردن است در این خصوص در ادامه بیشتر صحبت می شود.
معماری Group Policy
آشنایی با معماری Group Policyبرای برنامه نویسان بسیار مهم است و در تولید برنامه های Active Directory integrated کاربرد دارد. همچنین، به مدیران شبکه دید خوبی نسبت به مدیریت و رفع مشکلات Group Policy می دهد. برای آنکه ساختار Group Policy را به خوبی متوجه شوید به دانش مناسبی در خصوص معماری اکتیو دایرکتوری نیاز دارید.
در قلب معماری اکتیو دایرکتوری، موتور توسعه پذیر ذخیره سازی (extensible storage engine یا به اختصار ESE) قرار دارد. وظیفه ESE نوشتن و خواندن داده های مربوط به اکتیو دایرکتوری را دارد. توضیح آنکه یک DataBase هم از لحاظ فیزیکی و هم از لحاظ منطقی داده ها را گروه بندی می کند. ESE از یک متد سلسله مراتبی شیئ گراء برای نمایش اطلاعات بهره می برد. در Group Policy یک نمایش سلسه مراتبی در هر Group Policy Object چه به صورت فیزیکی و چه به صورت منطقی وجود دارد. بنابراین GPO از یک بستهاستفاده می کند تا در کنار Active Directory قرار گیرد، این بسته را ( Group Policy container (GPC می گوییم. جزء فیزیکی سیاست های گروهی را Group Policy template یا به اختصار (GPT) می گوییم. GPT در دامین کنترلر ها ذخیره می شود. توجه داشته باشید، در اینجا GPT کوتاه شده ی Graphical Partition Table نیست!
در بعد منطقی هم GPO ها به صورت بسته هایی در اکتیو دایرکتوری ظاهر می شوند. به این بسته ها Group Policy Containers یا به اختصار GPCs گفته می شود. GPCs ها شامل برخی اطلاعات ابتدایی همانند نامی که در کنسول مدیریت Group Policy ظاهر می شود و یا ورژن آن شوند می باشند. همچین ACL های مربوط نیز در همان GPCs ذخیره می شود.
هر GPO با یک(client-side extension (CSE کنترل می شود. به عنوان مثال Administrative Tools . همانند اکتیو دایرکتوری، Group Policy نیز از یک معماری Client – Server استفاده می کند. کلاینت ها برای تحلیل Group Policy از CSEs استفاده می کنند و Group Policy Servers از server-side extensions یا (SSEs) استفاده می کنند. CSEs ها با DLL هایی که زمان نصب سیستم عامل ساخته می شوند، اجرا می گردند. شکل زیر به خوبی این فرآیند را نمایش می دهد.
ابتدا CSEs توسط Group Policy Engine فراخوانی می شوند. این CSEs هست که تغییرات را اعمال می کند. به عنوان مثال تغییراتی که در Registry باید صورت گیرند. DLL های مربوط به CSEs ها در زمان نصب ویندوز در System32 قرار می گیرند. همچنین برنامه نویس شخص سوم (غیر از مایکروسافت) می تواند CSEs مورد نظر خود را بسازد. هر CSE با یک GUID یکتا در رجیستری ذخیره می شود. توضیح اضافه انکه این GUID در تمام سیستم های ویندوز یکسان است مثلا، GUID مربوط به Software Installation در تمام ویندوز ها یکی است. البته بحث پیرامون معماری سیاست های گروهی بسیار فراتر از آنچه در اینجا به صورت خلاصه ذکر شده است، می باشد. .
فرآیند سیاست های گروهی
دو دسته پردازش در پردازش Group Policy می تواند اتفاق افتد: پردازش های foreground و پردازش های Background
پردازش foreground در زمان Startup و Login اتفاق می افتد. پردازش foreground منحصر به فرد است زیرا پیش از آنکه کاربر بتواند با محیط دسکتاپ خود کار کند اتفاق می افتد. بنابراین برای سیاست هایی مناسب است که به کاربر وابسته نیستند.
پردازش Background در زمان های معین شده و به صورت asynchronously با سایر پردازش ها است. پردازش های Background برای سیاست هایی مناسب است که نیازمند آن هستند که دوباره اعمال شوند، همانند Administrative Templates. در خصوص بازه های این زمان بندی در قبل صحبت شد. اما این فاصله های زمانی به صورت زیر قابل تغییر است:
الف: برای دامین کنترلر ها : در مسیر Computer Configuration Administrative Templates SystemGroup Policy و ویرایش Group Policy Refresh Interval
ب: برای کامپیوتر ها :در مسیر Computer Configuration Administrative Templates SystemGroup Policy و ویرایش Group Policy Refresh Interval
ج: برای کاربر ها : در مسیر User Configuration Administrative Templates SystemGroup Policy و ویرایش Group Policy Refresh Interval
در ویندوز 2000 پردازش های foreground همواره به صورت synchronously صورت می گیرد که این به معنی آن است که سیاست های یک کامپیوتر پیش از Logon Screen و سیاست های یک کاربر پیش از نمایش Desktop و پس از Login پردازش می شوند. از ویندوز XP به بعد، امکان پردازش asynchronous نیز برای پردازش های foreground ایجاد شده که در مکانیسم Fast Logon Optimization ظاهر می شود. به صورت کلی Fast Logon Optimization به آن معنا است که ویندوز منتظر نمی شود تا دسترسی به شبکه کامل شود و سپس Logon صورت گیرد. در بسیاری موارد این گزینه کاربرد ندارد و فقط در سناریو های خاص می تواند مفید باشد. می توان با استفاده از سیاست Always Wait For The Network At Computer Startup And Logon در مسیر Computer ConfigurationAdministrative TemplatesSystemLogon فعال بودن Fast Logon Optimization را بی اثر کرد. همچنین ویندوز سرور 2003 از Fast Logon Optimization پشتیبانی نمی کند.
سرعت پایین ارتباط
اکتیو دایرکتوری از یک متد شناسایی سرعت های پایین ارتباطی بهره می برد تا هم در سرعت های کم و مسافت های دور کمک کند و هم در زمان ها ترافیک شدید از کاهش عملکرد سیستم قدری کاسته شود. از این ویژگی در سیاست های گروهی نیز می توان استفاده کرد. زمانی که یک لینک با سرعت پایین وجود داشته باشد، کلاینت Group Policy انتقال اطلاعات خود را کاهش می دهد تا روی ترافیک کل شبکه قدری موثر باشد. کامپیوتر های کلاینت از یک متد خاص برای شناسایی آنکه آیا در یک لینک با سرعت پایین قرار دارند یا خیر استفاده می کنند. در اکثر مواقع یک Ping به دامین کنترلر (ها) در حوزه خود می فرستند، Response Time انجام مرحله بعدی را معین می کند. چنانچه Response Time کمتر از 10 میلی ثانیه باشد، کلاینت پردازش های Group Policy را به حالت عادی ادامه می دهد و یا چنانچه در حال عادی نبوده، به حالت عادی باز می گرداند. اگر بیشتر از 10 میلی ثانیه باشد:
الف: دامین کنترلر ها را با یک پاکت 2KB سه مرتبه Ping می کند.
ب: از میانگین Response Time برای معین کردن سرعت لینک استفاده می کند.
به صورت پیش فرض اگر سرعت در قسمت “ب” کمتر از 500 Kbps باشد، کلاینت لینک سرعت کم را در نظر می گیرد و نتیجه آنکه در زمان بازسازی Group Policy، دامین کنترلر فقط Security Settings و Administrative Templates را برای کلاینت ارسال می کند. برای تنظیمات دلخواه، می توان سیاست Group Policy Slow Link Detection موجود در مسیر Computer Configuration Administrative Templates SystemGroup Policy را ویرایش کرد. توجه کنید که چه سیاست Disable و چه Not Configured باشد، کلاینت از مقدار پیش فرض یعنی 500 Kbps استفاده می کند. چنانچه Enable باشد، می توان این سرعت را تنظیم کرد. در واقع برای غیر فعال کردن این سیاست تنها راه این است که آن را Enable و مقدار 0 را برای آن قرار دهید. همچنین با سیاست های موجود در مسیر ذکر شده، می توان مشخص کرد که در زمان “سرعت پایین ارتباط” چه بخش های از Group Policy مورد پردازش قرار گیرند. همچنین می توان با سیاست Allow Processing Across A Slow Network Connection معین کرد که حتی اگر یک Slow Link وجود دارد، پردازش Group Policy در زمان بازسازی کامل انجام شود. این سیاست بر سیاست Group Policy Slow Link Detection برتری دارد.
ورژن بندی
ورژن بندی مبحث دقیقی نیست، اما بسیار قابل توجه است. GPC و GPT الزاما همواره ورژن های یکسانی ندارند! این می تواند به دلایل مختلف و در شرایط خاص صورت گیرد. به عنوان مثال ممکن است تغییرات روی GPC اعمال نوشته شده باشد، اما هنوز روی GPT نوشته نشده باشند. این در زمانی ممکن است اتفاق افتد که GPC کامل Replicate شده است اما GPT هنوز Replicate نشده. نسخ مختلف ویندوز ورژن بندی را به سبک های متفاوتی انجام می دهند.
در ویندوز سرور 2003 و ویندوز XP ، همسان سازی کامل Group Policy الزاما به معنی یکی بودن ورژن ها نمی باشد. چنانچه GPT و GPC ورژن های یکسانی ندارند، GPO در صورت امکان پردازش می شود. در صورت عدم امکان در دفعه بعدی پردازش می شود. عدد ورژن Group Policy به صورت افزایشی است و برای User Configuration و Computer Configuration متفاوت است:
الف: در ازای هر تغییر روی Computer Configuration ، یک واحد اضافه می شود. به عنوان مثال چنانچه در Administrative Templates در قسمت Computer Configuration چهار آیتم را تغییر دهید، 4 واحد به ورژن GPT اضافه می شود. سپس 4 واحد به ورژن GPC اضافه می شود. استثناء نیز وجود دارد.
ب: هر تغییر در User Configuration ، معمولا 65536 واحد به ورژن اضافه می کند. به عنوان مثال چنانچه 3 تغییر در Administrative Templates در قسمت User Configuration اعمال کنید ورژن GPT و سپس GPC به مقدار 196608 واحد اضافه خواهد شد.
با عملیات XOR ویندوز می توان تشخیص دهد که چند تغییر در Computer Configuration و چند تغییر در User Configuration اتفاق افتاده است.