Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows Server

แก้ไข DistributedCOM Error 10016: The Application-specific Permission Settings do not Grant Local Activation Permission

วิธีแก้ Error EventID 10016 จาก Source DistributedCOM บน Windows 10 หรือ Windows Server 2012 R2 Error นี้พบบ่อยในทุก Version ตั้งแต่ Windows XP แก้ไขได้ในทางเดียวกัน

ลักษณะ Error

ใน Event Viewer → System Section ปรากฏ Error ตอน Boot หรือพยายาม Start/Install Application:

Log Name: System
Source: DistributedCOM
Event ID: 10016
Level: Error
User: SYSTEM
Description: The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID {000209FF-0000-0000-C000-000000000046} and APPID Unavailable to the user IIS APPPOOL\appIISPool SID (S-1-5-82-...) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.

หมายถึง: User (IIS AppPool) หรือ SYSTEM พยายาม Start COM Component ผ่าน DCOM แต่ไม่มี Permission "Local Launch" หรือ "Local Activation" Error มี CLSID และ APPID ให้มา

ขั้นตอนแก้ไข

  1. Copy CLSID และ APPID จาก Event Description (เช่น CLSID: {000209FF-0000-0000-C000-000000000046}, APPID: {AD65A69D-3831-40D7-9629-9B0B50A93843})
  2. เปิด Registry Editor (regedit.exe) ไปที่ Key ตรงกับ CLSID: HKEY_CLASSES_ROOT\CLSID\{...} (บางครั้งต้องเช็ค HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ หรือ Remote Registry: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID)
  3. ดูชื่อ Application ใน Class Parameter (เช่น Microsoft Word Application) Component ที่พบบ่อย: Immersive Shell (CLSID: {C2F03A33-21F5-47FA-B4BB-156362A2F239}, APPID: {316CDED5-E4AE-4B15-9113-7055D84DCC97}), RuntimeBroker (CLSID: {D63B10C5-BB46-4990-A94F-E40B9D520160}, APPID: {9CA88EE3-ACB7-47C8-AFC4-AB702511C276})
  4. Right-click Registry Key → Permissions → Advanced
  5. Owner จะเป็น NT Service\TrustedInstaller หรือ SYSTEM → กด Change ใส่ Admin Account ของคุณ → Save
  6. ติ๊ก Replace owner on subcontainers and objects → OK
  7. Add Admin Account ให้ Permission Full Control
  8. ทำซ้ำขั้นตอน 4-7 สำหรับ Registry Key ของ APPID: HKEY_CLASSES_ROOT\AppID\{...}
  9. เปิด dcomcnfg (Component Services) As Admin → Component Services → Computers → My Computer → DCOM Config
  10. หา Component จากชื่อที่ได้ในขั้นตอน 3 (Application ID Column ตรง CLSID) หาไม่เจอ → ใช้คำสั่ง mmc comexp.msc /32 (32-bit Component บน 64-bit OS)
  11. แท็บ Security → Controls ต้องแก้ไขได้ (ถ้าเปิด dcomcnfg ก่อนแก้ Registry จะ Locked ไม่ให้แก้)
  12. Section Launch and Activation Permissions → Customize → Edit
  13. Add Account จาก Error Description (SYSTEM, User เฉพาะ, หรือ IIS_IUSR Group สำหรับ IIS AppPool) ให้ Permission: Local Launch = Allow, Local Activation = Allow
  14. Restart Computer → Check Event Logs Error DCOM 10016 ควรหายไป