Windows มีฟีเจอร์ความปลอดภัยที่เรียกว่า Kernel Code Integrity ที่ช่วยปกป้องระบบของคุณโดยการตรวจสอบให้แน่ใจว่าโปรแกรมควบคุมเคอร์เนลที่โหลดบนระบบของคุณทํางานด้วยความสมบูรณ์ และมีลายเซ็นแบบเข้ารหัสโดยผู้มีอํานาจที่ได้รับความเชื่อถือจาก Microsoft
หากคุณเห็นข้อความนี้ หมายความว่าโปรแกรมควบคุมหรือซอฟต์แวร์โหมดเคอร์เนลมีลายเซ็นไม่ถูกต้องหรือไม่ตรงตามความต้องการในการเซ็นชื่อความสมบูรณ์ของโค้ดเคอร์เนลของ Windows
Windows ต้องการให้ส่งโปรแกรมควบคุมใหม่ทั้งหมดและเซ็นชื่อผ่านกระบวนการโปรแกรมความเข้ากันได้ของฮาร์ดแวร์ Windows (WHCP) โปรแกรมควบคุมที่เชื่อถือได้ก่อนหน้านี้ของ Windows ที่เซ็นชื่อโดย โปรแกรมที่มีลายเซ็นข้าม ที่หมดอายุแล้วในขณะนี้ อย่างไรก็ตาม ด้วยการอัปเดตความปลอดภัยเดือนเมษายน 2026 โปรแกรมควบคุมเหล่านี้จะไม่ได้รับความเชื่อถือตามค่าเริ่มต้นอีกต่อไป สามารถประกาศได้ที่นี่: https://go.microsoft.com/fwlink/?linkid=2356646
นโยบายโปรแกรมควบคุมของ Windows คืออะไร
นโยบายโปรแกรมควบคุมของ Windows เป็นนโยบายในเคอร์เนลของ Windows ที่จํากัดโปรแกรมควบคุมในโหมดเคอร์เนลที่สามารถโหลดบนอุปกรณ์ของคุณได้ เมื่อใช้งานอยู่ จะอนุญาตให้โหลดโปรแกรมควบคุมต่อไปนี้:
-
โปรแกรมควบคุมที่เซ็นชื่ออย่างถูกต้องผ่านกระบวนการรับรอง WHCP ของ Microsoft
-
โปรแกรมควบคุมที่ปรากฏบนนโยบายโปรแกรมควบคุมของ Windows อนุญาตรายการโปรแกรมควบคุมที่มีชื่อเสียงซึ่งได้รับการรับรองโดยโปรแกรมที่มีลายเซ็นข้าม
โปรแกรมควบคุมที่ไม่ได้ลงนามใน Microsoft WHCP หรือปรากฏบนนโยบายโปรแกรมควบคุม Windows จะถูกบล็อกในขอบเขต ที่เปิดใช้งาน
คุณลักษณะนี้ช่วยปกป้องคุณจากโปรแกรมควบคุมที่อาจไม่ปลอดภัยหรืออาจไม่น่าเชื่อถือ ลดความเสี่ยงของมัลแวร์ ความไม่เสถียรของระบบ และช่องโหว่ด้านความปลอดภัยที่เกิดจากโปรแกรมควบคุมและผู้เผยแพร่โปรแกรมควบคุมที่ไม่ผ่านการปรับปรุง
ฟีเจอร์นี้ทำงานอย่างไร
นโยบายโปรแกรมควบคุมของ Windows ใช้วิธีการสองขั้นตอน เช่น การควบคุมแอปอัจฉริยะ เพื่อเพิ่มการป้องกันบนอุปกรณ์ของคุณเป็นระยะๆ:
โหมดการประเมิน (ตรวจสอบ)
เมื่อฟีเจอร์ถูกเปิดใช้งานครั้งแรก ฟีเจอร์จะเริ่มในโหมดการประเมิน ในขั้นตอนนี้:
-
โปรแกรมควบคุมที่จะถูกบล็อกโดยนโยบาย จะได้รับการตรวจสอบ แต่ยังคงอนุญาตให้โหลด ได้ ซึ่งช่วยให้มั่นใจว่าอุปกรณ์ของคุณจะยังคงทํางานได้ตามปกติในขณะที่ Windows ระบุว่าการบังคับใช้เหมาะสมกับระบบของคุณหรือไม่
-
Windows จะติดตามจํานวนโปรแกรมควบคุมในระบบของคุณที่ได้รับผลกระทบจากนโยบาย
-
ถ้าตรวจพบโปรแกรมควบคุมที่จะละเมิดนโยบายในระหว่างการประเมิน ความคืบหน้าในการประเมินจะถูกรีเซ็ต ซึ่งหมายความว่าการนับถอยหลังของการบังคับใช้เริ่มต้นขึ้น ทําให้ Windows มีเวลามากขึ้นในการสังเกตการใช้งานโปรแกรมควบคุมของระบบของคุณ
เกณฑ์การประเมิน
Windows จะตรวจสอบเกณฑ์ต่อไปนี้เพื่อกําหนดว่าอุปกรณ์ของคุณพร้อมสําหรับการบังคับใช้เมื่อใด:
-
ช่วงเวลาทํางานของระบบ : อุปกรณ์ของคุณต้องสะสมเวลาการใช้งาน 100 ชั่วโมง
-
เซสชันการเริ่มต้นระบบ : อุปกรณ์ของคุณต้องได้รับการเริ่มระบบใหม่อย่างน้อย 3 ครั้ง (2 ครั้งใน Windows Server) ตั้งแต่เริ่มการประเมินผล
-
ไม่มีการละเมิดนโยบาย : หากโปรแกรมควบคุมที่ถูกบล็อกถูกโหลดในระหว่างช่วงเวลาการประเมิน ตัวนับช่วงเวลาทํางานและเซสชันการเริ่มต้นระบบจะถูก รีเซ็ตเป็นศูนย์ เพื่อขยายระยะเวลาการประเมิน
หากอุปกรณ์ของคุณโหลดโปรแกรมควบคุมที่ผ่านนโยบายและตรงตามเกณฑ์เหล่านี้อย่างต่อเนื่อง ระบบจะถือว่าเป็นตัวเลือกที่ดีสําหรับการบังคับใช้
โหมดการบังคับใช้
เมื่อเป็นไปตามเกณฑ์การประเมิน Windows จะเปลี่ยนเป็น โหมดการบังคับใช้ โดยอัตโนมัติ ในขั้นตอนนี้:
-
อุปกรณ์ได้รับการป้องกันจากโปรแกรมควบคุมที่ไม่ตรงตามความต้องการในการรับรองในนโยบายโปรแกรมควบคุมของ Windows
-
โปรแกรมควบคุมเหล่านี้ ถูกบล็อกจากการโหลด และสร้างข้อมูลการวินิจฉัยเพื่อให้ Microsoft ตรวจสอบ และรายการในบันทึกเหตุการณ์ของ Windows ที่คุณสามารถตรวจสอบได้
-
รายการที่อนุญาตของโปรแกรมควบคุมและผู้เผยแพร่เฉพาะจะรวมอยู่ในนโยบายเพื่อให้โปรแกรมควบคุมแบบดั้งเดิมที่ใช้กันอย่างแพร่หลายซึ่งยังไม่ได้รับการรับรอง WHCP เพื่อให้สามารถทํางานได้ต่อไป
เมื่อเปิดใช้งานโหมดการบังคับใช้นโยบายจะยังคงมีผลในการเริ่มต้นระบบใหม่
คำถามที่ถามบ่อย
หากโปรแกรมควบคุมถูกบล็อกโดยนโยบายนี้ คุณอาจเห็น:
-
อุปกรณ์ฮาร์ดแวร์ทํางานไม่ถูกต้อง
-
ไม่รู้จักอุปกรณ์ต่อพ่วงหรือคอมโพเนนต์ (เครื่องพิมพ์ อะแดปเตอร์เครือข่าย GPU เป็นต้น)
-
แอปพลิเคชันที่ขึ้นกับโปรแกรมควบคุมเคอร์เนลไม่สามารถเริ่มทํางานได้
คุณสามารถยืนยันว่านโยบายโปรแกรมควบคุมของ Windows มีหน้าที่รับผิดชอบโดยการตรวจสอบบันทึกเหตุการณ์ความสมบูรณ์ของโค้ดโดยใช้สองวิธีต่อไปนี้
เหตุการณ์ความสมบูรณ์ของโค้ดคิวรีด้วยตนเอง
-
คลิกขวาที่ปุ่ม เริ่มต้น แล้วเลือก ตัวแสดงเหตุการณ์
-
ในบานหน้าต่างด้านซ้าย ให้นําทางไปยัง: บันทึกแอปพลิเคชันและบริการ > Microsoft > Windows > CodeIntegrity > Operational
-
ดูหรือกรองบันทึกสําหรับเหตุการณ์ด้วยรหัสเหล่านี้:
-
รหัสเหตุการณ์ 3076 — โปรแกรมควบคุม ได้รับการตรวจสอบแล้ว (จะถูกบล็อกแต่ได้รับอนุญาตเนื่องจากนโยบายอยู่ในโหมดตรวจสอบ)
-
รหัสเหตุการณ์ 3077 — โปรแกรมควบคุม ถูกบล็อก ไม่ให้โหลดเนื่องจากละเมิดนโยบายการบังคับใช้
ในรายละเอียดของเหตุการณ์ ให้ค้นหาเขตข้อมูล รหัสนโยบาย เหตุการณ์ที่เกิดจากฟีเจอร์นี้จะอ้างอิง GUID ของนโยบายต่อไปนี้อย่างใดอย่างหนึ่ง:
-
นโยบายการตรวจสอบ : {784C4414-79F4-4C32-A6A5-F0FB42A51D0D}
-
บังคับใช้นโยบาย : {8F9CB695-5D48-48D6-A329-7202B44607E3}
เหตุการณ์ความสมบูรณ์ของโค้ดคิวรีด้วย PowerShell
คุณสามารถใช้ PowerShell เพื่อค้นหาเหตุการณ์ที่เกี่ยวข้องกับฟีเจอร์นี้ได้อย่างรวดเร็ว:
# Find audit events (Event ID 3076) from the Windows Driver audit policy
$events = Get-WinEvent -LogName 'Microsoft-Windows-CodeIntegrity/Operational' -FilterXPath "*[System[EventID=3076]]" -ErrorAction SilentlyContinue |
Where-Object { $_.Message -like '*784C4414-79F4-4C32-A6A5-F0FB42A51D0D*' }
$results = $events | ForEach-Object {
$xml = [xml]$_.ToXml()
$data = $xml.Event.EventData.Data
[PSCustomObject]@{
TimeCreated = $_.TimeCreated
DriverName = ($data | Where-Object { $_.Name -eq 'File Name' }).'#text'
ProductName = ($data | Where-Object { $_.Name -eq 'ProductName' }).'#text'
ParentProcess = ($data | Where-Object { $_.Name -eq 'Process Name' }).'#text'
}
}
$results | Select-Object DriverName, ProductName, ParentProcess -Unique | Format-Table -AutoSize -Wrap
# Find block events (Event ID 3077) from the Windows Driver enforced policy
$events = Get-WinEvent -LogName 'Microsoft-Windows-CodeIntegrity/Operational' -FilterXPath "*[System[EventID=3077]]" -ErrorAction SilentlyContinue |
Where-Object { $_.Message -like '*8F9CB695-5D48-48D6-A329-7202B44607E3*' }
$results = $events | ForEach-Object {
$xml = [xml]$_.ToXml()
$data = $xml.Event.EventData.Data
[PSCustomObject]@{
TimeCreated = $_.TimeCreated
DriverName = ($data | Where-Object { $_.Name -eq 'File Name' }).'#text'
ProductName = ($data | Where-Object { $_.Name -eq 'ProductName' }).'#text'
ParentProcess = ($data | Where-Object { $_.Name -eq 'Process Name' }).'#text'
}
}
$results | Select-Object DriverName, ProductName, ParentProcess -Unique | Format-Table -AutoSize -Wrap
รายละเอียดกิจกรรมจะมีชื่อของโปรแกรมควบคุมที่ได้รับการตรวจสอบหรือบล็อก และชื่อของกระบวนการที่พยายามโหลดโปรแกรมควบคุม ซึ่งสามารถช่วยให้คุณระบุโปรแกรมควบคุมหรืออุปกรณ์ที่ได้รับผลกระทบ
หากคุณเป็นผู้ใช้อุปกรณ์หรือผู้ดูแลระบบ IT
-
ตรวจสอบบันทึกเหตุการณ์ โดยใช้ขั้นตอนข้างต้นเพื่อระบุโปรแกรมควบคุมที่กําลังถูกบล็อก
-
ตรวจสอบ Windows Update สําหรับโปรแกรมควบคุมที่อัปเดตแล้ว โปรแกรมควบคุมที่ได้รับการรับรองจาก WHCP และได้รับการรับรองอาจพร้อมใช้งานผ่าน Windows Update อยู่แล้ว ไปที่ การตั้งค่า > Windows Update > ตัวเลือกขั้นสูง > การอัปเดตเพิ่มเติม > การอัปเดตโปรแกรมควบคุม เพื่อตรวจสอบการอัปเดตโปรแกรมควบคุมที่พร้อมใช้งาน
-
เยี่ยมชมเว็บไซต์ของผู้ผลิต ดาวน์โหลดเวอร์ชันโปรแกรมควบคุมล่าสุดจากหน้าการสนับสนุนอย่างเป็นทางการของผู้ขาย — เวอร์ชันที่ใหม่กว่ามีแนวโน้มที่จะได้รับการรับรองจาก WHCP
4. ติดต่อผู้จําหน่ายฮาร์ดแวร์หรือซอฟต์แวร์ ที่เผยแพร่โปรแกรมควบคุม ถามพวกเขาว่าโปรแกรมควบคุมรุ่นที่ได้รับการรับรอง WHCP พร้อมใช้งานหรือไม่และสามารถเข้าถึงได้ที่ไหน ผู้ขายส่วนใหญ่รับรองโปรแกรมควบคุม WHCP อยู่แล้ว
หากคุณเป็นผู้เผยแพร่โปรแกรมควบคุม
หากคุณพัฒนาและแจกจ่ายโปรแกรมควบคุมในโหมดเคอร์เนลสําหรับ Windows คุณต้องตรวจสอบให้แน่ใจว่าโปรแกรมควบคุมของคุณได้รับการรับรองผ่านกระบวนการ WHCP:
-
เข้าร่วมศูนย์นักพัฒนาฮาร์ดแวร์ของ Windows ลงทะเบียนที่ Windows Hardware Dev Center ที่มีใบรับรองการเซ็นชื่อรหัส EV (การตรวจสอบความถูกต้องเพิ่มเติม) ที่ถูกต้อง
-
สร้างการส่ง ในแดชบอร์ดฮาร์ดแวร์ สร้างผลิตภัณฑ์ใหม่และส่งแพคเกจโปรแกรมควบคุมของคุณเพื่อขอการรับรอง
-
เรียกใช้การทดสอบ HLK ใช้ Windows Hardware Lab Kit (HLK) เพื่อเรียกใช้การทดสอบที่จําเป็นสําหรับประเภทโปรแกรมควบคุมและประเภทอุปกรณ์ของคุณ
-
ส่งเพื่อลงชื่อ หลังจากการทดสอบผ่านส่งผล HLK ของคุณพร้อมกับแพคเกจไดรเวอร์ Microsoft จะเซ็นชื่อในโปรแกรมควบคุมด้วยใบรับรอง WHCP
-
แจกจ่าย โปรแกรมควบคุมที่เซ็นชื่อ เมื่อเซ็นชื่อแล้ว ให้เผยแพร่โปรแกรมควบคุมที่ได้รับการรับรอง WHCP ผ่าน Windows Update และ/หรือเว็บไซต์ของคุณ
สิ่งสำคัญ: โปรแกรมควบคุมที่เซ็นชื่อโดยใช้เฉพาะใบรับรองข้ามใบรับรองที่ไม่มีใบรับรอง WHCP อาจถูกบล็อกบนระบบที่มีนโยบายโปรแกรมควบคุมของ Windows ในโหมดการบังคับใช้
คำเตือน: การปิดใช้งานฟีเจอร์นี้จะช่วยลดความปลอดภัยของอุปกรณ์ของคุณ เราขอแนะนําให้เปิดใช้งานและทํางานร่วมกับผู้เผยแพร่โปรแกรมควบคุมเพื่อรับโปรแกรมควบคุมที่ได้รับการรับรอง WHCP แทน
นโยบายโปรแกรมควบคุมของ Windows เป็นนโยบายความสมบูรณ์ของโค้ดที่มีลายเซ็น ซึ่งจัดเก็บไว้บนพาร์ติชันระบบ EFI และได้รับการป้องกันโดยคอมโพเนนต์การเริ่มต้นระบบก่อนใครของ Windows การปิดฟีเจอร์จําเป็นต้องมีขั้นตอนด้วยตนเองต่อไปนี้ เพื่อให้ซอฟต์แวร์ที่เป็นอันตรายที่ทํางานเป็นผู้ดูแลระบบไม่สามารถเปลี่ยนแปลงฟีเจอร์ได้:
ขั้นตอนที่ 1: ปิดใช้งานการบูตแบบปลอดภัย
-
รีสตาร์ตคอมพิวเตอร์ของคุณ แล้วเข้าสู่ เมนูการตั้งค่าเฟิร์มแวร์ UEFI (BIOS) โดยทั่วไปแล้วคุณสามารถทําได้โดยการกดแป้นในระหว่างการเริ่มต้นระบบ (เช่น F2 , F10 , Del หรือ Esc ให้ตรวจสอบคู่มือของผู้ผลิตอุปกรณ์ของคุณ)
-
หรือใน Windows: ไปที่ การตั้งค่า > การกู้คืน > ระบบ > การเริ่มต้นระบบขั้นสูง > เริ่มระบบใหม่เดี๋ยวนี้ จากนั้นเลือก แก้ไขปัญหา > ตัวเลือกขั้นสูง > การตั้งค่าเฟิร์มแวร์ UEFI > เริ่มระบบใหม่
-
-
ในการตั้งค่าเฟิร์มแวร์ของคุณ ค้นหาตัวเลือก การบูตแบบปลอดภัย (โดยปกติจะอยู่ภายใต้แท็บ ความปลอดภัย หรือ เริ่มต้นระบบ )
-
ตั้งค่าการบูตแบบปลอดภัยเป็น ปิดใช้งาน
-
บันทึกการเปลี่ยนแปลงและออกจากการตั้งค่าเฟิร์มแวร์
ขั้นตอนที่ 2: ลบไฟล์นโยบายออกจากพาร์ติชันระบบ EFI
1. เปิด PowerShell ในฐานะผู้ดูแลระบบ
2. ติดตั้งพาร์ติชันระบบ EFI โดยการเรียกใช้:
mountvol S: /s
คุณสามารถใช้อักษรไดรฟ์ที่มีอยู่แทน 'S:'
3. ลบไฟล์นโยบายการตรวจสอบ:
del S:\EFI\Microsoft\Boot\CiPolicies\Active\{784C4414-79F4-4C32-A6A5-F0FB42A51D0D}.cip
4. ถ้ามีนโยบายการบังคับใช้อยู่ด้วย ให้ลบ:
del S:\EFI\Microsoft\Boot\CiPolicies\Active\{8F9CB695-5D48-48D6-A329-7202B44607E3}.cip
5. ตรวจสอบและลบนโยบายออกจากไดเรกทอรีระบบ Windows ด้วย:
del %windir%\System32\CodeIntegrity\CiPolicies\Active\{784C4414-79F4-4C32-A6A5-F0FB42A51D0D}.cip
del %windir%\System32\CodeIntegrity\CiPolicies\Active\{8F9CB695-5D48-48D6-A329-7202B44607E3}.cip
6. ถอดพาร์ติชัน EFI:
mountvol S: /d
ขั้นตอนที่ 3: รีสตาร์ตคอมพิวเตอร์ของคุณ
เริ่มการทำงานของอุปกรณ์ของคุณใหม่เพื่อให้การเปลี่ยนแปลงมีผล หลังจากเริ่มระบบใหม่ นโยบายจะไม่ทํางานอีกต่อไป และโปรแกรมควบคุมที่ได้รับการรับรองทั้งหมด รวมถึงโปรแกรมควบคุมที่ไม่มีใบรับรอง WHCP — จะได้รับอนุญาตให้โหลดได้
ขั้นตอนที่ 4: เปิดใช้งานการบูตแบบปลอดภัยอีกครั้ง
หลังจากลบไฟล์นโยบายออก ให้เปิดใช้งานการบูตแบบปลอดภัยอีกครั้งในการตั้งค่าเฟิร์มแวร์ UEFI เพื่อรักษาการป้องกันการบูตแบบปลอดภัยอื่นๆ
คุณลักษณะนี้จะเริ่มต้นในโหมด การประเมิน ซึ่งจะมีแฟ้มบันทึกไว้ แต่ไม่ได้บล็อกโปรแกรมควบคุมที่ไม่ได้รับการรับรอง หลังจากที่ระบบของคุณเป็นไปตามเกณฑ์การประเมิน (ช่วงเวลาทํางานที่เพียงพอและเริ่มต้นระบบใหม่โดยไม่มีการละเมิดนโยบาย) นโยบายจะเปลี่ยนเป็น โหมดการบังคับใช้ โดยอัตโนมัติ และโปรแกรมควบคุมที่ไม่ใช่ WHCP ที่เซ็นชื่อไว้จะถูกบล็อก ซึ่งอาจทําให้โปรแกรมควบคุมที่ทํางานก่อนหน้านี้หยุดการโหลด
ขณะนี้ยังไม่มีวิธีเลี่ยงผ่านนโยบายสําหรับโปรแกรมควบคุมแต่ละรายการ คุณสามารถปิดใช้งานฟีเจอร์ทั้งหมด (ดูด้านบน) หรือติดต่อผู้เผยแพร่โปรแกรมควบคุมและขอให้พวกเขาจัดหาโปรแกรมควบคุมเวอร์ชันที่ได้รับการรับรอง WHCP
คุณลักษณะนี้ใช้กับโปรแกรมควบคุมในโหมดเคอร์เนลเท่านั้น แอปพลิเคชันในโหมดผู้ใช้จะไม่ได้รับผลกระทบจากนโยบายนี้
คุณสามารถตรวจสอบโดยการเรียกใช้คําสั่งต่อไปนี้ในฐานะผู้ดูแลระบบใน PowerShell:
$evalPolicy = (citool -lp -json | ConvertFrom-Json).Policies | Where-Object { $_.PolicyID -eq "784c4414-79f4-4c32-a6a5-f0fb42a51d0d" }
$enforcedPolicy = (citool -lp -json | ConvertFrom-Json).Policies | Where-Object { $_.PolicyID -eq "8F9CB695-5D48-48D6-A329-7202B44607E3" }
if ($enforcedPolicy.IsEnforced -and $enforcedPolicy.IsAuthorized) { Write-Host "✅ The feature is in enforcement mode" -ForegroundColor Green }
elseif($evalPolicy.IsEnforced -and $evalPolicy.IsAuthorized) { Write-Host "✅ The feature is in evaluation mode" -ForegroundColor Green }
else { Write-Host "❌ The feature is not available on this system" -ForegroundColor Red }
ใช่ - Windows Server 2025 และแพลตฟอร์มเซิร์ฟเวอร์ที่ใหม่กว่า อย่างไรก็ตาม ใน Windows Server ข้อกําหนดเซสชันการเริ่มต้นระบบคือ 2 การเริ่มต้นระบบใหม่ (เปรียบเทียบกับ 3 บนรุ่นไคลเอ็นต์) เกณฑ์อื่นๆ ทั้งหมดจะเหมือนกัน
หากคุณรีเซ็ตหรือติดตั้ง Windows ใหม่ ฟีเจอร์นี้จะเริ่มต้นใหม่ในโหมดการประเมิน ตัวนับการประเมินจะถูกรีเซ็ต และการเปลี่ยนไปใช้การบังคับใช้จะเริ่มต้นอีกครั้งตั้งแต่เริ่มต้น
ต้องการความช่วยเหลือเพิ่มเติมไหม
หากคุณยังคงประสบปัญหากับโปรแกรมควบคุมที่ถูกบล็อก โปรดไปที่ ฟอรั่ม Microsoft Community หรือ ติดต่อฝ่ายสนับสนุนของ Microsoft
เรายินดีรับคําติชมของคุณเกี่ยวกับฟีเจอร์นี้ เมื่อต้องการแชร์ประสบการณ์การใช้งานของคุณ:
-
ใน Windows เปิด ฮับคําติชม (กด Win + F )
2. ในขั้นตอนที่ 2 — เลือกประเภท เลือก การควบคุมแอป > ความปลอดภัยและความเป็นส่วนตัว