ข้อผิดพลาด DistributedCOM 10016 ใน Windows: การตั้งค่าการอนุญาตเฉพาะแอปพลิเคชันไม่ให้สิทธิ์การเปิดใช้งานในเครื่อง
ในโพสต์นี้ ฉันจะแสดงวิธีแก้ไขข้อผิดพลาดด้วย EventID 10016 จากแหล่ง DistributedCOM บนคอมพิวเตอร์ที่ใช้ Windows 10 หรือ Windows Server 2012 R2 เหตุการณ์ DCOM 10016 พบได้ทั่วไปทั้งในเวอร์ชันไคลเอ็นต์และเซิร์ฟเวอร์ของ Windows โดยเริ่มจาก Windows XP และคุณสามารถแก้ไขข้อผิดพลาดนี้ได้ด้วยวิธีเดียวกันโดยไม่คำนึงถึงเวอร์ชันของ Windows
ปัญหาแสดงตัวเองดังนี้: ข้อผิดพลาดต่อไปนี้ปรากฏใน Windows Event Viewer ในส่วนระบบเมื่อคอมพิวเตอร์บูตหรือพยายามเริ่มหรือติดตั้งแอปพลิเคชันบางอย่าง:
ชื่อบันทึก: ระบบ
แหล่งที่มา: DistributedCOM
รหัสเหตุการณ์: 10016
ระดับ: ข้อผิดพลาด
ผู้ใช้: ระบบ
คำอธิบาย: การตั้งค่าสิทธิ์เริ่มต้นของเครื่องไม่ให้สิทธิ์การเปิดใช้งานภายในเครื่องสำหรับแอปพลิเคชัน COM Server ที่มี CLSID {000209FF-0000-0000-C000-000000000046} และ APPID ไม่พร้อมใช้งานสำหรับผู้ใช้ IIS APPPOOL ppIISPool SID (S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824) จากที่อยู่ LocalHost (ใช้ LRPC) ที่ทำงานอยู่ คอนเทนเนอร์แอปพลิเคชันไม่มี SID (ไม่พร้อมใช้งาน) สิทธิ์การรักษาความปลอดภัยนี้สามารถแก้ไขได้โดยใช้เครื่องมือการจัดการบริการคอมโพเนนต์
ตามคำอธิบายข้อผิดพลาด: ผู้ใช้บางคน (เช่น IIS Apppool) หรือระบบ (NT AUTHORITY\SYSTEM) พยายามเริ่มคอมโพเนนต์ COM บางอย่างโดยใช้โครงสร้างพื้นฐาน DCOM และไม่สามารถทำได้เนื่องจากไม่มี “Local Launch” หรือ “Local การเปิดใช้งาน” การอนุญาต รหัสข้อผิดพลาดประกอบด้วยรหัสของคลาสสำหรับคอมโพเนนต์ COM และแอปพลิเคชันเท่านั้น ลองพิจารณาว่าตัวระบุเป็นของแอปพลิเคชันใดและให้สิทธิ์ที่จำเป็นในการเปิดและเปิดใช้งานให้สำเร็จ
คัดลอก CLSID และ APPID จากคำอธิบายเหตุการณ์ ในกรณีของฉันคือ:
CLSID : {000209FF-0000-0000-C000-000000000046}
APPID: {AD65A69D-3831-40D7-9629-9B0B50A93843}
(ในบางกรณี อาจไม่ได้ระบุตัวระบุแอปพลิเคชัน - APPID ไม่พร้อมใช้งาน)
นอกจากนี้โปรดทราบว่าสิทธิ์ใดขาดหายไป (สิทธิ์การเปิดใช้งานในเครื่อง) และสำหรับบัญชีใด (NT AUTHORITY\SYSTEM หรือ IIS APPPOOL ppIISPool SID — S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824)
ในแต่ละกรณี คลาส แอปพลิเคชัน ตัวระบุบัญชี และประเภทการเข้าถึงอาจแตกต่างกัน
เรียกใช้ Registry Editor (regedit.exe);
ไปที่คีย์รีจิสทรีที่เกี่ยวข้องกับ CLSID ของคุณ ในกรณีของฉันคือ HKEY_CLASSES_ROOT\CLSID\{000209FF-0000-0000-C000-000000000046};
ในบางกรณี คุณต้องตรวจสอบรีจิสตรีคีย์ HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ ด้วย เมื่อคุณเชื่อมต่อกับรีจิสตรีจากระยะไกล จะอยู่ในส่วนรีจิสตรี HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
ในพารามิเตอร์คลาส ต้องระบุชื่อแอป (ในกรณีของฉันคือแอปพลิเคชัน Microsoft Word)
บ่อยครั้งที่ข้อผิดพลาด DCOM 10016 เกิดขึ้นกับส่วนประกอบต่อไปนี้:
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}คลิกขวาที่รีจิสตรีคีย์แล้วเลือกสิทธิ์
คลิกที่ปุ่ม ขั้นสูง
NT Service\TrustedInstaller หรือ SYSTEM จะถูกระบุในส่วน Owner
คลิกปุ่ม เปลี่ยน และระบุชื่อบัญชีผู้ดูแลระบบของคุณ บันทึกการเปลี่ยนแปลง
โปรดทราบว่าชื่อของเจ้าของคีย์รีจิสทรีปัจจุบันได้เปลี่ยนเป็นบัญชีของคุณแล้ว ทำเครื่องหมายที่ช่อง แทนที่เจ้าของในคอนเทนเนอร์ย่อยและวัตถุ แล้วคลิก "ตกลง "
เพิ่มบัญชีผู้ดูแลระบบของคุณในรายการสิทธิ์และให้สิทธิ์ ควบคุมทั้งหมด
คุณได้ให้สิทธิ์กับคีย์รีจิสทรีด้วย CLSID ตอนนี้คุณต้องทำซ้ำขั้นตอนก่อนหน้านี้และเปลี่ยนความเป็นเจ้าของและการอนุญาตสำหรับผู้ดูแลระบบ บัญชีในคีย์รีจิสทรีของ APPID ของคุณจากคำอธิบายข้อผิดพลาด (เช่น HKEY_CLASSES_ROOT\AppID\{AD65A69D-3831-40D7-9629-9B0B50A93843};
ตอนนี้เรียกใช้คอนโซลการจัดการคอมโพเนนต์ (dcomcnfg) ในฐานะผู้ดูแลระบบ (แผงควบคุม -> รายการแผงควบคุมทั้งหมด -> เครื่องมือการดูแลระบบ -> บริการคอมโพเนนต์);
ในคอนโซลคอมโพเนนต์ ให้ไปที่ส่วน บริการคอมโพเนนต์ -> คอมพิวเตอร์ -> คอมพิวเตอร์ของฉัน -> การกำหนดค่า DCOM ในรายการคอมโพเนนต์ COM ให้ค้นหาชื่อคอมโพเนนต์ที่คุณกำหนดไว้ในขั้นตอนที่สอง (ค่าในคอลัมน์ ID แอปพลิเคชันต้องตรงกับ CLSID ของคุณจากคำอธิบายข้อผิดพลาด DCOM 10016)
หากคุณไม่พบส่วนประกอบของคุณในรายการ คุณอาจใช้ Windows รุ่น 64 บิต และส่วนประกอบที่คุณต้องการเรียกใช้คือรุ่น 32 บิต ในกรณีนี้ คุณต้องเริ่มคอนโซล DCOM โดยใช้คำสั่ง:
mmc comexp.msc /32คลิกแท็บ ความปลอดภัย ตัวควบคุมแบบฟอร์มทั้งหมดสามารถเข้าถึงได้เพื่อเปลี่ยนแปลง
ในกรณีของฉัน แอปพลิเคชันไม่ได้รับอนุญาตให้เปิดใช้งานภายในเครื่อง ในส่วน สิทธิ์การเปิดใช้งานและการเปิดใช้งาน เลือก ปรับแต่ง แล้วคลิกปุ่ม แก้ไข
คุณต้องเพิ่มบัญชีที่ระบุในคำอธิบายข้อผิดพลาดลงใน ACL ขึ้นอยู่กับข้อความในข้อผิดพลาด DCOM 10016 ซึ่งอาจเป็น SYSTEM ผู้ใช้เฉพาะ หรือบัญชีที่พูล IIS ทำงาน (ในกรณีนี้ คุณต้องเพิ่มการเข้าถึงสำหรับกลุ่ม IIS_IUSR ในเครื่อง)
หากระบุ NT AUTHORITY\NETWORK SERVICE ในข้อผิดพลาดเริ่มต้น แทนที่จะเป็น NT AUTHORITY\SYSTEM คุณต้องกำหนดสิทธิ์ในการเปิดและเปิดใช้งานในเครื่องสำหรับบัญชี NetworkService
ให้สิทธิ์ที่จำเป็นสำหรับบัญชี ตัวอย่างเช่น การเปิดในเครื่อง=อนุญาต และ การเปิดใช้งานในเครื่อง=อนุญาต
รีสตาร์ทเครื่องคอมพิวเตอร์และตรวจสอบบันทึกเหตุการณ์ ข้อผิดพลาด DCOM 10016 ควรหายไป












