คำอธิบายเกี่ยวกับคุณลักษณะ Windows File Protection

สรุป

บทความนี้จะอธิบายเกี่ยวกับคุณลักษณะ Windows File Protection (WFP)

ข้อมูลเพิ่มเติม

Windows File Protection (WFP) ป้องกันไม่ให้โปรแกรมแทนที่แฟ้มระบบที่สำคัญของ Windows โปรแกรมต้องไม่เขียนทับแฟ้มเหล่านี้เนื่องจากเป็นแฟ้มที่ระบบปฏิบัติการและโปรแกรมอื่นๆ ใช้งาน การป้องกันแฟ้มเหล่านี้จะช่วยไม่ให้เกิดปัญหากับโปรแกรมต่างๆ และระบบปฏิบัติการ

WFP จะป้องกันแฟ้มระบบที่สำคัญซึ่งติดตั้งไว้เป็นส่วนหนึ่งของ Windows (เช่น แฟ้มที่มีนามสกุล .dll, .exe, .ocx และ .sys และแบบอักษร True Type บางชนิด) WFP ใช้ลายเซ็นแฟ้มและแฟ้มแค็ตตาล็อกที่สร้างขึ้นโดยการเซ็นโค้ดเพื่อตรวจสอบว่าแฟ้มระบบที่ได้รับการป้องกันเป็นรุ่น Microsoft ที่ถูกต้องหรือไม่ การแทนที่แฟ้มระบบที่ได้รับการป้องกันจะสามารถทำได้โดยใช้กลไกต่อไปนี้เท่านั้น
  • การติดตั้ง Windows Service Pack โดยใช้ Update.exe
  • Hotfixes ที่ติดตั้งโดยใช้ Hotfix.exe หรือ Update.exe
  • การปรับรุ่นระบบปฏิบัติการโดยใช้ Winnt32.exe
  • Windows Update
ถ้าโปรแกรมใช้วิธีการแทนที่แฟ้มที่ได้รับการป้องกันวิธีอื่น WFP จะคืนค่าแฟ้มต้นฉบับ Windows Installer จะใช้ WFP เมื่อติดตั้งแฟ้มระบบที่สำคัญและเรียกใช้ WFP พร้อมกับการร้องขอเพื่อติดตั้งหรือแทนที่แฟ้มที่ได้รับการป้องกัน แทนการพยายามที่จะติดตั้งหรือแทนที่แฟ้มที่ได้รับการป้องกันเอง

วิธีการทำงานของคุณลักษณะ WFP

คุณลักษณะ WFP จะป้องกันแฟ้มระบบโดยใช้กลไกสองอย่าง กลไกแรกจะทำงานในแบบแบ็คกราวน์ การป้องกันนี้จะเริ่มทำงานหลังจากที่ WFP ได้รับการแจ้งเตือนการเปลี่ยนไดเรกทอรีสำหรับแฟ้มในไดเรกทอรีที่ได้รับการป้องกัน หลังจากที่ได้รับการแจ้งเตือนนี้ WFP จะระบุแฟ้มที่ถูกเปลี่ยนแปลง ถ้าแฟ้มได้รับการป้องกัน WFP จะค้นหาลายเซ็นแฟ้มในแฟ้มแค็ตตาล็อกเพื่อระบุว่าแฟ้มใหม่เป็นรุ่นที่ถูกต้องหรือไม่ ถ้าแฟ้มไม่ใช่รุ่นที่ถูกต้อง WFP จะแทนที่แฟ้มใหม่ด้วยแฟ้มจากโฟลเดอร์แคช (ถ้าแฟ้มอยู่ในโฟลเดอร์แคช) หรือจากแหล่งการติดตั้ง WFP จะค้นหาแฟ้มที่ถูกต้องในตำแหน่งตามลำดับต่อไปนี้
  1. โฟลเดอร์แคช (โดยค่าเริ่มต้น %systemroot%\system32\dllcache)
  2. เส้นทางการติดตั้งผ่านเครือข่าย หากติดตั้งระบบโดยใช้การติดตั้งผ่านเครือข่าย
  3. ซีดีรอม Windows หากติดตั้งระบบจากซีดีรอม
หาก WFP พบแฟ้มในโฟลเดอร์แคช หรือหากมีการระบุแหล่งของการติดตั้งโดยอัตโนมัติ WFP จะทำการแทนที่แฟ้มโดยไม่แจ้งเตือน และบันทึกเหตุการณ์ที่มีลักษณะเหมือนกับบันทึกของระบบดังต่อไปนี้:

รหัสเหตุการณ์: 64001

แหล่ง: Windows File Protection

คำอธิบาย: มีการพยายามแทนที่แฟ้มระบบที่ได้รับการป้องกัน c:\winnt\system32\ file_name แฟ้มนี้ถูกคืนค่าเป็นรุ่นเดิมเพื่อรักษาความเสถียรของระบบ รุ่นแฟ้มของแฟ้มระบบนี้คือ x.x:x.x

ถ้า WFP ไม่สามารถค้นหาแฟ้มในตำแหน่งดังกล่าวโดยอัตโนมัติ คุณจะได้รับข้อความใดข้อความหนึ่งต่อไปนี้ โดยที่ ชื่อ_แฟ้ม คือชื่อของแฟ้มที่ถูกแทนที่ และผลิตภัณฑ์คือผลิตภัณฑ์ของ Windows ที่คุณใช้อยู่
  • Windows File Protection
    แฟ้มที่จำเป็นต่อการทำงานอย่างถูกต้องของ Windows ถูกแทนที่ด้วยรุ่นที่ไม่รู้จัก Windows ต้องคืนค่ารุ่นต้นฉบับของแฟ้มเหล่านี้เพื่อรักษาความเสถียรของระบบ ใส่ซีดีรอมของผลิตภัณฑ์เดี๋ยวนี้
  • Windows File Protection
    แฟ้มที่จำเป็นต่อการทำงานอย่างถูกต้องของ Windows ถูกแทนที่ด้วยรุ่นที่ไม่รู้จัก Windows ต้องคืนค่ารุ่นต้นฉบับของแฟ้มเหล่านี้เพื่อรักษาความเสถียรของระบบ ไม่มีตำแหน่งของเครือข่ายที่จะคัดลอกแฟ้มเหล่านี้ \\server\share ติดต่อผู้ดูแลระบบของคุณหรือใส่ซีดีรอมของผลิตภัณฑ์เดี๋ยวนี้
หมายเหตุ ถ้าผู้ดูแลระบบไม่ได้เข้าสู่ระบบ WFP จะไม่สามารถแสดงกล่องโต้ตอบใดๆ เหล่านี้ ได้ ในสถานการณ์เช่นนี้ WFP จะแสดงกล่องโต้ตอบหลังจากผู้ดูแลระบบเข้าสู่ระบบ WFP อาจรอให้ผู้ดูแลเข้าสู่ระบบในสถานการณ์สมมติต่อไปนี้
  • รายการรีจิสทรี SFCShowProgress ขาดหายไปหรือได้รับการตั้งค่าให้เป็น 1 และเซิร์ฟเวอร์ได้รับการตั้งค่าให้ทำการสแกนทุกครั้งที่คอมพิวเตอร์เริ่มทำงาน ในสถานการณ์เช่นนี้ WFP จะรอให้คอนโซลเข้าสู่ระบบ ดังนั้น เซิร์ฟเวอร์ RPC จะไม่ทำงานจนกว่าจะมีการสแกน คอมพิวเตอร์ไม่มีการป้องกันในระหว่างนี้

    หมายเหตุ คุณยังคงสามารถแมปไดรฟ์เครือข่าย ใช้แฟ้มระบบ และใช้บริการเทอร์มินัลเพื่อเข้าสู่เซิร์ฟเวอร์ได้ WFP ไม่ถือว่าการดำเนินการเหล่านี้เป็นการเข้าสู่ระบบของคอนโซลและจะรอต่อไปอย่างไม่มีกำหนด
  • WFP จะต้องคืนค่าแฟ้มจากเครือข่ายที่ใช้ร่วมกัน สถานการณ์นี้อาจเกิดขึ้นหากแฟ้มไม่อยู่ในโฟลเดอร์ Dllcache หรือหากแฟ้มเสียหาย ่ในสถานการณ์เช่นนี้ WFP อาจไม่มีข้อมูลประจำตัวที่ถูกต้องเพื่อเข้าใช้งานร่วมกันจากสื่อการติดตั้งบนเครือข่าย
กลไกการป้องกันที่สองที่มีอยู่ในคุณลักษณะ WFP คือเครื่องมือ System File Checker (Sfc.exe) ในตอนท้ายของการตั้งค่าโหมด GUI เครื่องมือ System File Checker จะสแกนแฟ้มที่ได้รับการป้องกันทั้งหมดเพื่อให้แน่ใจว่าแฟ้มเหล่านั้นไม่ได้ถูกแก้ไขโดยโปรแกรมที่ติดตั้งโดยใช้การติดตั้งแบบผู้ใช้ไม่ต้องใส่ข้อมูล เครื่องมือ System File Checker ยังจะตรวจสอบแฟ้มแค็ตตาล็อกทั้งหมดที่ใช้สำหรับติดตามรุ่นของแฟ้มที่ถูกต้อง ถ้าแฟ้มแค็ตตาล็อกใดขาดหายไปหรือเสียหาย WFP จะเปลี่ยนชื่อแฟ้มแค็ตตาล็อกที่ได้รับผลกระทบ และเรียกรุ่นที่เก็บไว้ชั่วคราวของแฟ้มนั้นออกมาจากโฟลเดอร์แคช ถ้าในโฟลเดอร์แคชไม่มีสำเนาที่เก็บไว้ชั่วคราวของแฟ้มแค็ตตาล็อก คุณลักษณะ WFP จะร้องขอสื่อที่เหมาะสมเพื่อเรียกสำเนาใหม่ของแฟ้มแค็ตตาล็อก

เครื่องมือ System File Checker ช่วยให้ผู้ดูแลระบบสามารถสแกนแฟ้มที่ได้รับการป้องกันทั้งหมดเพื่อตรวจสอบรุ่นของแฟ้มเหล่านั้นได้ นอกจากนี้ เครื่องมือ System File Checker ยังตรวจสอบและแก้ไขข้อมูลในโฟลเดอร์แคชด้วย (โดยค่าเริ่มต้น %SystemRoot%\System32\Dllcache) ถ้าโฟลเดอร์แคชเสียหายหรือไม่สามารถใช้งานได้ คุณสามารถใช้คำสั่ง sfc /scanonce หรือคำสั่ง sfc /scanboot ที่ 'พร้อมรับคำสั่ง' เพื่อซ่อมแซมเนื้อหาของโฟลเดอร์

ค่า SfcScan ในรีจิสทรีคีย์ต่อไปนี้สามารถตั้งค่าได้สามรูปแบบ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
การตั้งค่า SfcScan ประกอบด้วย
  • 0x0 = จะไม่สแกนแฟ้มที่ได้รับการป้องกันหลังจากเริ่มการทำงานใหม่ (ค่าเริ่มต้น)
  • 0x1 = จะสแกนแฟ้มที่ได้รับการป้องกันทั้งหมดทุกครั้งหลังจากเริ่มการทำงานใหม่ (ตั้งค่าว่าต้องการให้เรียกใช้ sfc /scanboot หรือไม่)
  • 0x2 = จะสแกนแฟ้มที่ได้รับการป้องกันทั้งหมดหนึ่งครั้งหลังจากเริ่มการทำงานใหม่ (ตั้งค่าว่าต้องการให้เรียกใช้ sfc /scanonce หรือไม่)
โดยค่าเริ่มต้น แฟ้มระบบทั้งหมดจะถูกเก็บไว้ชั่วคราวในโฟลเดอร์แคช และขนาดค่าเริ่มต้นของแคชคือ 400 MB เมื่อพิจารณาถึงเนื้อที่ว่างบนดิสก์แล้ว ไม่ควรเก็บรุ่นที่เก็บไว้ชั่วคราวของแฟ้มระบบทั้งหมดไว้ในโฟลเดอร์แคช เมื่อต้องการเปลี่ยนขนาดของแคช ให้เปลี่ยนการตั้งค่าของ SFCQuota ในรีจิสทรีคีย์ต่อไปนี้
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
WFP จะเก็บรุ่นของแฟ้มที่ได้รับการตรวจสอบไว้ในโฟลเดอร์ Dllcache ในฮาร์ดดิสก์ จำนวนของแฟ้มที่เก็บไว้ชั่วคราวจะกำหนดจากการตั้งค่า SFCQuota (ขนาดค่าเริ่มต้นคือ 0xFFFFFFFF หรือ 400 MB) ผู้ดูแลระบบสามารถตั้งค่า SFCQuota ให้มีขนาดใหญ่หรือเล็กได้ตามความต้องการ โปรดสังเกตว่า ถ้าคุณตั้งค่า SFCQuota เป็น 0xFFFFFFFF คุณลักษณะ WFP จะเก็บแฟ้มระบบที่ได้รับการป้องกันทั้งหมดไว้ชั่วคราว (ประมาณ 2,700 แฟ้ม)

มีสองกรณีที่โฟลเดอร์แคชอาจไม่มีสำเนาของแฟ้มที่ได้รับการป้องกันทั้งหมด แม้ว่าจะตั้งค่า SFCQuota ไว้ก็ตาม
  1. เนื้อที่ว่างบนดิสก์ไม่พอ

    ใน Windows XP คุณลักษณะ WFP จะหยุดเก็บแฟ้มเข้าสู่โฟลเดอร์ Dllcache เมื่อมีเนื้อที่ว่างบนฮาร์ดดิสก์เหลืออยู่น้อยกว่า (600 MB + ขนาดสูงสุดของแฟ้มเพจ)
    ใน Windows 2000 คุณลักษณะ WFP จะหยุดเก็บแฟ้มเข้าสู่โฟลเดอร์ Dllcache เมื่อมีเนื้อที่ว่างบนฮาร์ดดิสก์เหลืออยู่น้อยกว่า 600 MB
  2. การติดตั้งผ่านเครือข่าย

    เมื่อติดตั้ง Windows 2000 หรือ Windows XP บนเครือข่าย แฟ้มในไดเรกทอรี i386\lang จะไม่ถูกเก็บไว้ในโฟลเดอร์ Dllcache
นอกจากนี้ โปรแกรมควบคุมทั้งหมดในแฟ้ม Driver.cab จะได้รับการป้องกัน แต่จะไม่ถูกเก็บไว้ในโฟลเดอร์ Dllcache WFP สามารถคืนค่าแฟ้มเหล่านี้จากแฟ้ม Driver.cab โดยตรง โดยไม่ต้องเตือนผู้ใช้ให้ใช้สื่อต้นฉบับ อย่างไรก็ตาม การเรียกใช้คำสั่ง sfc /scannow จะเก็บแฟ้มจากแฟ้ม Driver.cab เข้าสู่โฟลเดอร์ Dllcache

ถ้า WFP ตรวจพบการเปลี่ยนแปลงแฟ้ม และแฟ้มที่ได้รับผลกระทบไม่อยู่ในโฟลเดอร์แคช WFP จะตรวจสอบรุ่นของแฟ้มที่เปลี่ยนแปลงซึ่งระบบปฏิบัติการกำลังใช้งานอยู่ในขณะนี้ ถ้าแฟ้มที่กำลังใช้งานอยู่ในขณะนี้เป็นรุ่นที่ถูกต้อง WFP จะคัดลอกรุ่นของแฟ้มนั้นลงในโฟลเดอร์แคช ถ้าแฟ้มที่กำลังใช้งานอยู่ในขณะนี้ไม่ใช่รุ่นที่ถูกต้อง หรือถ้าแฟ้มไม่ถูกเก็บไว้ในโฟลเดอร์แคช WFP จะพยายามระบุตำแหน่งของแหล่งการติดตั้ง ถ้า WFP ไม่พบแหล่งการติดตั้ง WFP จะเตือนให้ผู้ดูแลระบบใส่สื่อที่เหมาะสมเพื่อแทนที่แฟ้มหรือรุ่นของแฟ้มที่เก็บไว้ชั่วคราว

ค่า SFCDllCacheDir (REG_EXPAND_SZ) ในรีจิสทรีคีย์ต่อไปนี้จะระบุตำแหน่งของโฟลเดอร์ Dllcache
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
ข้อมูลค่าเริ่มต้นสำหรับค่า SFCDllCacheDir คือ %SystemRoot%\System32 ค่าSFCDllCacheDir อาจจะเป็นเส้นทางในเครื่อง โดยค่าเริ่มต้น ค่า SFCDllCacheDir จะไม่แสดงอยู่ใน HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon รีจิสทรีคีย์ เมื่อต้องการปรับเปลี่ยนตำแหน่งของแคช คุณจะต้องเพิ่มค่านี้

เมื่อ Windows เริ่มต้นระบบ WFP จะซิงโครไนซ์ (คัดลอก) การตั้งค่า WFP จากรีจิสทรีคีย์ต่อไปนี้
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protection
ไปยังรีจิสทรีคีย์ต่อไปนี้
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
ดังนั้น ถ้ามีค่า SfcScan, SFCQuota, หรือ SFCDllCacheDir อยู่ในคีย์ย่อย HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protection ค่าเหล่านั้นจะมีความสำคัญกว่าค่าเดียวกันในคีย์ย่อย HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคุณลักษณะ WFP ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:

222473 การตั้งค่ารีจิสทรีสำหรับ Windows File Protection (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือ System File Checker ใน Windows XP และ Windows Server 2003 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:

310747 คำอธิบายของ System File Checker (Sfc.exe) ของ Windows XP และ Windows Server 2003
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือ System File Checker ใน Windows 2000 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:

222471 คำอธิบายเกี่ยวกับเครื่องมือ System File Checker (Sfc.exe) ใน Windows 2000 (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคุณลักษณะ WFP โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft: สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Windows Installer และ WFP โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft:
คุณสมบัติ

รหัสบทความ: 222193 - การตรวจสอบครั้งสุดท้าย: 20 ต.ค. 2009 - ฉบับแก้ไข: 1

คำติชม