แก้ไขข้อผิดพลาด ID เหตุการณ์ 10016: เซิร์ฟเวอร์ DCOM ไม่มีสิทธิ์เปิดใช้งานในเครื่องสำหรับ PCNAME\Username SID
เมื่อเร็วๆ นี้ บนพีซีที่ใช้ Windows 8.1 ของฉัน ฉันเริ่มได้รับข้อผิดพลาดในบันทึกเหตุการณ์หลังจากติดตั้งการอัปเดตใน Patch Tuesday ข้อผิดพลาดเกี่ยวข้องกับ Distributed COM (DCOM):
การตั้งค่าการอนุญาตเฉพาะแอปพลิเคชันไม่อนุญาตให้เปิดใช้งาน Local Activation สำหรับแอปพลิเคชัน COM Server ที่มี CLSID {9E175B6D-F52A-11D8-B9A5-505054503030} และ APPID {9E175B9C-F52A-11D8-B9A5-505054503030} ถึงผู้ใช้ PCNAME\ชื่อผู้ใช้ SID S-1-5-21-81864976-3388411891-1937036257-1001 จากที่อยู่ LocalHost (การใช้ LRPC) ที่ทำงานอยู่ในคอนเทนเนอร์ของแอปพลิเคชัน SID ที่ไม่พร้อมใช้งาน (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394) สิทธิ์การรักษาความปลอดภัยนี้สามารถแก้ไขได้โดยใช้เครื่องมือการดูแลระบบ Component Services
ข้อผิดพลาดที่ซับซ้อนดังกล่าวอาจทำให้ผู้ใช้ที่ไม่มีประสบการณ์รู้สึกหงุดหงิด พวกเขาไม่คุ้นเคยกับคำศัพท์นี้ นอกจากนี้ การแก้ไขปัญหาข้อผิดพลาด DCOM เป็นเรื่องที่เจ็บปวด ดังนั้นฉันจึงเพิกเฉยในตอนแรก แต่บันทึกเหตุการณ์เต็มไปด้วยข้อผิดพลาดที่เกิดขึ้นทุก ๆ ชั่วโมงหรือมากกว่านั้น ฉันตัดสินใจที่จะตรวจสอบ
โฆษณา
สำหรับผู้ที่ไม่รู้จัก COM เป็นเทคโนโลยีการสื่อสารระหว่างกระบวนการเชิงวัตถุแบบเก่าของ Microsoft เซิร์ฟเวอร์ COM เป็นโปรแกรมปฏิบัติการ (EXE หรือ DLL) ที่ใช้ชุดของวัตถุ COM คอมโพเนนต์ของ Windows จำนวนมากถูกนำมาใช้เป็นวัตถุ COM และปฏิบัติตามกฎ COM มาตรฐานเพื่อสื่อสารระหว่างกัน เซิร์ฟเวอร์ COM ลงทะเบียนใน Registry และมี Class ID (CLSID) และ APPID
ขั้นตอนแรกในการแก้ไขข้อผิดพลาดนี้คือการค้นหาว่าส่วนประกอบ DCOM ใดที่ CLSID และ APPID เกี่ยวข้อง ดังนั้นให้เปิดโปรแกรม Registry Editor และไปที่คีย์รีจิสทรีนี้:
HKEY_CLASSES_ROOT\CLSID\{9E175B6D-F52A-11D8-B9A5-505054503030}
คีย์รีจิสทรีนี้ยังชี้ไปที่ AppID เดียวกันกับข้อความแสดงข้อผิดพลาดซึ่งก็คือ {9E175B9C-F52A-11D8-B9A5-505054503030} ดังนั้น ไปที่
HKCR\APPID\{9E175B9C-F52A-11D8-B9A5-505054503030}
สิ่งนี้บอกฉันว่าส่วนประกอบคือ WSearch (วัตถุ Windows Search COM)
ขั้นตอนต่อไปคือการกำหนดให้กับ CLSID/AppID นี้ สิทธิ์การเปิดใช้งานในเครื่องที่ถูกต้องที่ต้องการ - จาก ID ความปลอดภัยของผู้ใช้ (SID) และ SID ของแอป ในการทำเช่นนั้น Windows ได้จัดเตรียมเครื่องมือ Component Services ซึ่งให้ผู้ใช้แก้ไขสิทธิ์ในการเปิดและเปิดใช้งาน สิทธิ์การเข้าถึง และการกำหนดค่าการอนุญาตบนเซิร์ฟเวอร์ COM
เปิดเครื่องมือการดูแลระบบ -> บริการส่วนประกอบ ขยายบริการคอมโพเนนต์ -> คอมพิวเตอร์ -> คอมพิวเตอร์ของฉัน -> การกำหนดค่า DCOM ค้นหา 'WSearch' และคลิกขวา -> Properties ไปที่แท็บ "ความปลอดภัย"
เมื่อทำเช่นนี้ ฉันเห็นว่าทุกอย่างเป็นสีเทา (ปิดการใช้งาน) บนแท็บความปลอดภัยสำหรับวัตถุ COM นี้ ดังนั้นฉันจึงจำเป็นต้องให้สิทธิ์บัญชีผู้ใช้ของฉันอย่างเต็มรูปแบบในรีจิสทรีก่อน ฉันเปิด Regedit อีกครั้งและไปที่คีย์เดียวกัน
HKEY_CLASSES_ROOT\AppID\{9E175B9C-F52A-11D8-B9A5-505054503030}
และเปลี่ยนการอนุญาต ก่อนอื่นคุณต้องเป็นเจ้าของ (ทำเครื่องหมายที่ 'แทนที่เจ้าของในคอนเทนเนอร์ย่อยและวัตถุ') จากนั้นเพิ่มชื่อผู้ใช้ของคุณและให้การควบคุมทั้งหมด หลังจากนั้น คุณสามารถเปลี่ยนความเป็นเจ้าของกลับเป็นบัญชีเดิมได้ (NT Service\TrustedInstaller)
การเป็นเจ้าของและให้สิทธิ์ผู้ดูแลระบบเป็นเรื่องง่ายมากด้วย Winaero's RegOwnershipEx แอป.
ตอนนี้ฉันเปิดบริการคอมโพเนนต์ (Dcomcnfg.exe) อีกครั้งและไปที่คุณสมบัติ WSearch แท็บความปลอดภัยและ ตอนนี้สามารถแก้ไขการอนุญาตความปลอดภัยในการเปิดใช้และเปิดใช้งานการอนุญาตซึ่งแสดงเช่น นี้:
ผ่านกลุ่มความปลอดภัย ทุกคน บัญชีผู้ใช้ของฉันมีสิทธิ์การเปิดใช้งานในเครื่องแล้ว แต่ยังมี SID อื่นอีก 3 รายการที่แสดงซึ่งไม่รู้จักบัญชีผู้ใช้หรือกลุ่มตามที่ไอคอนระบุ คือ Application SID และอ้างถึง Applications ข้อผิดพลาดบันทึกเหตุการณ์ยังบอกด้วยว่า "... ทำงานในคอนเทนเนอร์แอปพลิเคชัน Unavailable SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394)
ตอนนี้ UI ตัวเลือกออบเจ็กต์ Windows ไม่อนุญาตให้คุณเพิ่มแอปพลิเคชัน SID สำหรับออบเจ็กต์หลักด้านความปลอดภัย หลังจากคลิกเพิ่ม ฉันคลิกขั้นสูง... แล้วค้นหาเดี๋ยวนี้ นี้จะแสดงรายการวัตถุทั้งหมด แต่ส่วนใหญ่เป็น SID ของบัญชี ฉันสังเกตเห็น "ALL APPLICATION PACKAGES" ซึ่งตามชื่อนั้นน่าจะเป็นกลุ่มสำหรับแพ็คเกจแอปพลิเคชันทั้งหมด ดังนั้นฉันจึงเลือกมัน คลิกตกลงทุกที่เพื่อเพิ่มจากนั้นให้สิทธิ์ Local Launch และ Local Activation
ตอนนี้เมื่อคลิกตกลงและปิด UI ของบริการคอมโพเนนต์ ข้อผิดพลาดจะหายไปจากบันทึกเหตุการณ์ซึ่งหมายความว่าคอมโพเนนต์ WSearch COM มีสิทธิ์เปิดใช้และเปิดใช้งานในเครื่องที่ถูกต้อง
ฉันเขียนบทความนี้เป็นแนวทางทั่วไปเพื่อช่วยผู้อื่นในการแก้ไขข้อผิดพลาด DCOM ในบันทึกเหตุการณ์ในลักษณะเดียวกัน ฉันยังคงกังวลว่าเหตุใด Windows จึงไม่มีเครื่องมือที่จะกู้คืนการอนุญาตที่ถูกต้องสำหรับวัตถุ COM ได้อย่างง่ายดายในกรณีที่เกิดปัญหา