วิธีแก้ 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 ให้มา
ขั้นตอนแก้ไข
- Copy CLSID และ APPID จาก Event Description (เช่น CLSID: {000209FF-0000-0000-C000-000000000046}, APPID: {AD65A69D-3831-40D7-9629-9B0B50A93843})
- เปิด Registry Editor (regedit.exe) ไปที่ Key ตรงกับ CLSID: HKEY_CLASSES_ROOT\CLSID\{...} (บางครั้งต้องเช็ค HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ หรือ Remote Registry: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID)
- ดูชื่อ 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})
- Right-click Registry Key → Permissions → Advanced
- Owner จะเป็น NT Service\TrustedInstaller หรือ SYSTEM → กด Change ใส่ Admin Account ของคุณ → Save
- ติ๊ก Replace owner on subcontainers and objects → OK
- Add Admin Account ให้ Permission Full Control
- ทำซ้ำขั้นตอน 4-7 สำหรับ Registry Key ของ APPID: HKEY_CLASSES_ROOT\AppID\{...}
- เปิด dcomcnfg (Component Services) As Admin → Component Services → Computers → My Computer → DCOM Config
- หา Component จากชื่อที่ได้ในขั้นตอน 3 (Application ID Column ตรง CLSID) หาไม่เจอ → ใช้คำสั่ง
mmc comexp.msc /32(32-bit Component บน 64-bit OS) - แท็บ Security → Controls ต้องแก้ไขได้ (ถ้าเปิด dcomcnfg ก่อนแก้ Registry จะ Locked ไม่ให้แก้)
- Section Launch and Activation Permissions → Customize → Edit
- Add Account จาก Error Description (SYSTEM, User เฉพาะ, หรือ IIS_IUSR Group สำหรับ IIS AppPool) ให้ Permission: Local Launch = Allow, Local Activation = Allow
- Restart Computer → Check Event Logs Error DCOM 10016 ควรหายไป