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

گویا آی تی – با این وجود این سبک از کارها همیشه جالب و فوق العاده آموزنده هستند. در این مقاله می‌خواهم درباره‌ی اصلاح خطایی صحبت کنم که به خاطر DistributedCOM در برنامه‌ی Event Viewer ظاهر می‌شود. در بررسی‌های ابتدایی‌ام متوجه شدم که به جز یک خطای تکراری با Event ID شماره‌ی ۱۰۰۱۶ هیچ مشکلی در لاگ سیستمم ثبت نشده است. پیغام این خطا معمولاً به شکل زیر می‌باشد:

The application-specific permission settings do not grant Local Activation permission for the COM Server application

 

اصلاح خطای 10016 در Windows Event Viewer

 

در بخش General اطلاعاتی درباره‌ی CLSID، APPID و SID و چیزهایی در رابطه با تغییر مجورها با استفاده از Component Services نوشته شده است.

 

اصلاح خطای 10016 در Windows Event Viewer

 

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

 

مرحله ۱ – بررسی پردازش

 

اولین کاری که باید بکنیم این است که پردازش یا سرویس مربوط به CLASS ID خطای مذکور را پیدا کنیم. برای انجام این کار، CLSID مربوطه را که در بخش توضیحات رویداد نوشته شده کپی کنید. مثلاً در مورد من، این آیدی با عبارت {D63B10C5 شروع می‌شود. عبارتی که کپی می‌کنید حتماً باید آکولادهای ابتدایی و انتهایی را هم داشته باشد.

 

اکنون با کلیک روی دکمه‌ی Start و تایپ عبارت regedit، برنامه‌ی Registry Editor را باز کنید. سپس از منوی نرم‌افزار روی Edit و بعد Find کلیک نمایید. حالا متنی که کپی کردید را داخل فیلد مربوطه پیست کنید و Enter بزنید.

 

اصلاح خطای 10016 در Windows Event Viewer

 

بعد از چند لحظه نتیجه را از بخش HK_CLASSES_ROOT\CLSID می‌بینید. از سمت راست صفحه دو کلید مشاهده می‌کنید که کلید پیشفرض باید نام سرویس مربوطه باشد. برای من و احتمالاً شما، این سرویس RuntimeBroker است.

 

اصلاح خطای 10016 در Windows Event Viewer

 

AppID سرویس هم باید با چیزی که در پیغام خطا ارائه شده بود همخوانی داشته باشد. حالا باید اسکریپتی را اجرا کنیم که امکان اعمال تغییرات در مجوزهای Component Services را برای سرویس مذکور فراهم می‌کند.

 

مرحله ۲ – اجرای اسکریپت PowerShell

 

برای حل این مشکل، باید برخی از مجوزهای RuntimeBroker را از بخش Component Services ویرایش کنیم، ولی قبل از آن، باید اسکریپتی را اجرا کنیم که اجازه انجام این تغییرات را به ما بدهد.

 

برای اجرای اسکریپت‌های پاورشل با دسترسی‌های مدیریتی، باید روی Start کلیک کرده و powershell را تایپ کنید. سپس روی نتیجه‌ای که می‌آید کلیک راست و گزینه‌ی Run as administrator را انتخاب نمایید.

 

اصلاح خطای 10016 در Windows Event Viewer

 

حالا فایل متنی این لینک را دانلود، محتویات آن را به طور کامل کپی و داخل پنجره‌ی PowerShell پیست کنید (اگر در پنجره‌ی پاورشل صرفاً کلیک راست کنید، خودش محتویات Clipboard شما را پیست می‌کند). اکنون کافی است Enter بزنید تا عبارت Done را ببینید.

 

اصلاح خطای 10016 در Windows Event Viewer

 

مرحله ۳ – باز کردن Component Services

 

به همان روشی که PowerShell را در مرحله‌ی دوم باز کردید، Component Services را هم باز کنید. البته لازم نیست این برنامه را با حالت مدیریتی اجرا نمایید. بعد از باز شدن برنامه به مسیر زیر بروید:

 

Component Services – Computers – My Computer – DCOM Config

 

اصلاح خطای 10016 در Windows Event Viewer

 

به سمت پایین اسکرول کنید تا Runtime Broker را بیابید. برای من دو مدل RuntimeBroker وجود داشت! از کجا باید فهمید که کدام یک همان سرویسی است که در بخش خطا معرفی شده بود؟

 

اصلاح خطای 10016 در Windows Event Viewer

 

روی یکی از آن‌ها کلیک راست کنید و گزینه‌ی Properties را انتخاب نمایید. در زبانه‌ی General، بخشی به نام Application ID وجود دارد که باید با AppID پیغام خطا یکسان باشد. اگر ID پیغام خطایی که در Event Viewer دریافت می‌کنید ۱۰۰۱۶ است، اما بیش از یک CLSID دارد، شاید لازم باشد تا هر دو RuntimeBrokers را اصلاح کنید. برای من فقط یکی از این دو مورد مشکل داشت.

 

مرحله ۴ – تصحیح مجوزها

 

در آخر، باید مجوزها را ویرایش کنیم. از پنجره‌ی RuntimeBroker properties به زبانه‌ی Security بروید.

اصلاح خطای 10016 در Windows Event Viewer

 

دکمه‌ی Edit که در بخش Launch and Activation Permissions وجود دارد باید قابل کلیک شدن باشد. اگر رنگ آن خاکستری است، اسکریپت پاورشل به درستی اجرا نشده. وقتی روی Edit کلیک می‌کنید، احتمالاً با پنجره‌ی پاپ آپی مواجه می‌شوید که درباره‌ی مجوزهای شناخته نشده به شما هشدار می‌دهد.

 

اصلاح خطای 10016 در Windows Event Viewer

 

این جا نباید روی Remove کلیک کنید. صرفاً دکمه‌ی Cancel را انتخاب نمایید. در این جا لیستی از حساب‌های پیشفرض وجود دارد که ممکن است گزینه‌ای تحت عنوان Account Unknown هم در آن وجود داشته باشد.

 

اصلاح خطای 10016 در Windows Event Viewer

 

به هیچ عنوان این گزینه را حذف نکنید و آن را به حال خود رها کنید. حالا باید دو حساب جدید اضافه کنیم. پس روی دکمه‌ی Add کلیک و عبارت System را تایپ و بعد روی گزینه‌ی Check Names کلیک کنید. در آخر گزینه‌ی OK را انتخاب نمایید تا حساب مذکور به لیست اضافه شود.

 

اصلاح خطای 10016 در Windows Event Viewer

 

دوباره روی Add کلیک کنید و این بار عبارت Local Service را تایپ نمایید. در ادامه همان مراحل قبلی را انجام دهید.

 

اصلاح خطای 10016 در Windows Event Viewer

 

بعد از این که هر دو حساب جدید با موفقیت اضافه شد، به نوبت روی آن‌ها کلیک کرده و از بخش Allow تیک دو گزینه‌ی Local Launch و Local Activation را بزنید. حالا سیستم را Restart کنید. پس از بالا آمدن مجدد کامپیوتر مشکل برطرف شده و دیگر نباید در لاگ سیستم خود چنین خطایی ببینید.

 

منبع