Project Detail
شروع پروژه

معرفی پروژه

USB/DVD Locker & Unlocker یک ابزار دسکتاپ ویندوزی برای مدیریت دسترسی به حافظه‌های USB و رسانه‌های CD/DVD است. این ابزار به مدیر سیستم کمک می‌کند بدون نیاز به جست‌وجو در مسیرهای مختلف Registry یا Group Policy، وضعیت دسترسی دستگاه‌های Removable Storage را مشاهده و کنترل کند. برنامه با PowerShell توسعه داده شده و از رابط کاربری Windows Forms استفاده می‌کند. در بخش Local Device Policy، کاربر می‌تواند وضعیت فعلی USB و CD/DVD را مشاهده کند، دسترسی آن‌ها را مسدود یا آزاد کند و در صورت نیاز ابزارهایی مثل gpresult، RSOP و gpedit را برای بررسی دقیق‌تر اجرا کند. در بخش Domain GPO نیز امکان بررسی اتصال سیستم به دامنه، شناسایی Default Domain Policy، مشاهده وضعیت سیاست‌های مربوط به USB/CD و اعمال تغییرات روی Default Domain Policy فراهم شده است. ابزار در حالت عادی از Group Policy PowerShell Cmdlets استفاده می‌کند و در صورت نبودن این Cmdletها، از روش مستقیم و کنترل‌شده برای ویرایش Registry.pol استفاده می‌کند.
مسئله اصلی

چالش پروژه

مدیریت دسترسی USB و CD/DVD در ویندوز معمولاً بین Registry، Local Group Policy و Domain Group Policy پراکنده است. در محیط‌های سازمانی، ممکن است یک تغییر محلی توسط Domain Policy بازنویسی شود و تشخیص منبع مؤثر Policy برای مدیر سیستم زمان‌بر باشد. چالش اصلی این پروژه این بود که یک ابزار ساده و متمرکز ساخته شود که هم برای سیستم‌های مستقل کاربرد داشته باشد و هم در محیط‌های Domain بتواند وضعیت Default Domain Policy را بررسی و در صورت نیاز تغییر دهد، بدون اینکه کاربر مجبور باشد مستقیماً با مسیرهای پیچیده Registry یا فایل‌های Policy کار کند.
مسیر اجرا

راه حل اجرا

برای حل این مسئله، یک ابزار دسکتاپ با PowerShell و Windows Forms طراحی شد که دو بخش اصلی دارد: مدیریت Local Device Policy و مدیریت Domain GPO. در بخش Local، ابزار وضعیت دسترسی USB Storage و CD/DVD را از مسیر Policy مربوط به RemovableStorageDevices در Registry بررسی می‌کند و با مقداردهی یا حذف مقادیر Deny_Read، Deny_Write و Deny_Execute، امکان مسدودسازی یا آزادسازی دسترسی را فراهم می‌کند. در بخش Domain، ابزار Default Domain Policy را شناسایی می‌کند و ابتدا تلاش می‌کند تغییرات را از طریق Group Policy Cmdlets اعمال کند. اگر این مسیر در دسترس نباشد یا خطا بدهد، از روش fallback برای ویرایش Registry.pol و به‌روزرسانی metadata مربوط به GPO استفاده می‌شود تا کلاینت‌های دامنه بتوانند تغییرات را دریافت کنند.
دستاورد نهایی

خروجی و نتیجه

خروجی پروژه یک ابزار کاربردی و قابل اجرا روی ویندوز است که فرآیند کنترل دسترسی به USB و CD/DVD را ساده‌تر، سریع‌تر و قابل فهم‌تر می‌کند. این ابزار برای سناریوهای پشتیبانی شبکه، مدیریت سیستم‌های سازمانی و کنترل دسترسی Removable Storage مناسب است. پروژه علاوه بر اجرای مستقیم از PowerShell، امکان build شدن به فایل exe مستقل را هم دارد. همچنین برای بخش‌های اصلی مثل خواندن/نوشتن Policy، تشخیص منبع Policy، fallback مربوط به Domain GPO و فرآیند packaging تست‌هایی در نظر گرفته شده است.
زیرساخت اجرا

فناوری های پروژه

این پروژه با مجموعه‌ای از ابزارها و فناوری‌هایی پیاده‌سازی شده که برای سرعت توسعه، پایداری و مقیاس مناسب انتخاب شده‌اند.

PowerShell Windows Forms .NET Windows Registry Group Policy Active Directory LDAP gpresult RSOP gpedit ps2exe Pester
گام بعدی

لینک های پروژه