การแก้ไข: กระบวนการไม่สามารถเข้าถึงไฟล์เพราะมันถูกใช้โดยกระบวนการอื่น

ผู้ใช้ Windows หลายรายกำลังพบข้อผิดพลาด“ กระบวนการไม่สามารถเข้าถึงไฟล์ได้เนื่องจาก ข้อผิดพลาด นี้กำลังถูกใช้โดยกระบวนการอื่น” ส่วนใหญ่ปัญหาเกิดขึ้นเมื่อผู้ใช้พยายามเรียกใช้คำสั่ง netsh ผู้ใช้บางรายรายงานว่าสำหรับพวกเขาข้อความแสดงข้อผิดพลาดจะปรากฏขึ้นเมื่อพวกเขาพยายามคลิกขวาเว็บไซต์ใน IIS (บริการข้อมูลทางอินเทอร์เน็ต) MMC (Microsoft Management Console) สแนปอิน

กระบวนการไม่สามารถเข้าถึงไฟล์ได้เนื่องจากกำลังถูกใช้โดยกระบวนการอื่น

มีรายงานปัญหาที่จะเกิดขึ้นกับ Windows Vista, Windows 7, Windows 8.1, Windows 10 และ Windows Server รุ่นต่างๆ

อะไรเป็นสาเหตุทำให้กระบวนการใช้กระบวนการอื่น?

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

  • คำสั่งต้องการสิทธิ์ผู้ดูแลระบบ - หากคุณพบข้อผิดพลาดภายในเทอร์มินัลก็เป็นไปได้มากว่าคุณไม่มีสิทธิ์ระดับผู้ดูแลในการปรับเปลี่ยน ผู้ใช้หลายคนในสถานการณ์ที่คล้ายกันได้รับการจัดการเพื่อแก้ไขปัญหาโดยการให้สิทธิ์ผู้ดูแลระบบ
  • กระบวนการอื่นกำลังใช้พอร์ต 80 หรือพอร์ต 443 - นี่เป็นเรื่องปกติสำหรับคอมพิวเตอร์ที่ใช้ IIS (Internet Information Services) หากกระบวนการอื่นกำลังใช้สองพอร์ตเหล่านี้คุณจะเห็นข้อความแสดงข้อผิดพลาดนี้
  • คีย์ย่อยรีจิสทรี ListenOnlyList ไม่ได้รับการกำหนดค่าอย่างถูกต้อง - สถานการณ์ทั่วไปอีกอย่างหนึ่งกับ IIS (บริการข้อมูลทางอินเทอร์เน็ต) ที่จะทริกเกอร์ข้อผิดพลาดนี้เป็นพิเศษคือคีย์ย่อยของรีจิสทรี ListenOnlyList ที่กำหนดค่าไม่ถูกต้อง

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

เพื่อผลลัพธ์ที่ดีที่สุดให้ทำตามวิธีการด้านล่างตามลำดับจนกว่าคุณจะพบการแก้ไขที่มีประสิทธิภาพในการแก้ไขข้อผิดพลาดในสถานการณ์เฉพาะของคุณ

เอาล่ะ!

วิธีที่ 1: การเรียกใช้คำสั่งด้วยสิทธิ์ของผู้ดูแลระบบ

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

โปรดทราบว่าการดำเนินการในลักษณะนี้จะต้องใช้สิทธิ์ผู้ดูแลระบบ เพื่อให้แน่ใจว่าหน้าต่าง CMD ที่คุณพยายามดำเนินการนั้นมีสิทธิ์ของผู้ดูแลระบบให้ทำตามขั้นตอนด้านล่าง:

  1. กดปุ่ม Windows + R เพื่อเปิดกล่องโต้ตอบเรียกใช้ จากนั้นพิมพ์“ cmd ” แล้วกด Ctrl + Shift + Enter เพื่อเปิดพร้อมท์คำสั่งที่ยกระดับ

    การเปิดหน้าต่างพร้อมรับคำสั่งที่ยกระดับ
  2. เมื่อได้รับแจ้งจาก UAC (การควบคุมบัญชีผู้ใช้) คลิก ใช่ เพื่อให้สิทธิ์ผู้ดูแลระบบ
  3. ในพร้อมท์คำสั่งแบบยกระดับให้รันคำสั่งอีกครั้งและดูว่าคุณยังคงพบกับข้อความแสดงข้อผิดพลาดเดียวกันหรือไม่

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

วิธีที่ 2: การตั้งค่าช่วง IP ที่แตกต่างกัน

หากคุณกำลังพยายามแก้ไขข้อขัดแย้ง DNS ที่ขัดแย้งกันโดยใช้ netsh และวิธีการด้านบนไม่ได้ช่วยคุณคุณอาจต้องการลองวิธีอื่น

ผู้ใช้หลายรายที่พยายามแก้ไขข้อความแสดงข้อผิดพลาดเดียวกันพบว่าความขัดแย้งได้รับการแก้ไขหลังจากที่พวกเขาพยายามตั้งค่าช่วง IP ที่แตกต่างอย่างสิ้นเชิงแทนที่จะสร้างช่วงการยกเว้น

ด้านล่างนี้เป็นคำสั่งสองสามคำที่ผู้ใช้ที่ได้รับผลกระทบสามารถประสบความสำเร็จในการแก้ไขข้อขัดแย้งระหว่าง DNS และ Quickbooks:

 netsh int ipv4 set dynamicport tcp start=10000 num=1000 netsh int ipv4 set dynamicport udp start=10000 num=1000 

หมายเหตุ: ตรวจสอบให้แน่ใจว่าเทอร์มินัลที่คุณกำลังใช้คำสั่งมีสิทธิ์ของผู้ดูแลระบบ

หากวิธีนี้ไม่สามารถแก้ไขข้อขัดแย้งหรือไม่สามารถใช้ได้กับสถานการณ์ที่คุณประสบอยู่ให้เลื่อนไปที่วิธีสุดท้าย

วิธีที่ 3: การแก้ไขข้อขัดแย้งของพอร์ต IIS

หากคุณประสบปัญหาขณะพยายามคลิกขวาที่รายการเว็บไซต์ภายใน IIS MMC snap-in (การคลิกเริ่มไม่ได้ทำอะไร) คุณจะต้องใช้โปรแกรมอรรถประโยชน์ Netstat.exe เพื่อค้นหาว่ากระบวนการอื่นเป็น ใช้พอร์ต 80 และพอร์ต 443

ปัญหานี้ค่อนข้างบ่อยกับคอมพิวเตอร์ที่ใช้ Microsoft IIS 6.0 และ 7.0 ตามเอกสารทางการของ Microsoft ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้นหากเงื่อนไขข้อใดข้อหนึ่งต่อไปนี้เกี่ยวข้องกับสถานการณ์ปัจจุบันของคุณ:

  • ไม่มีการกำหนดค่าคีย์ย่อยของรีจิสทรี ListenOnlyList อย่างถูกต้องบน IIS ที่เรียกใช้คอมพิวเตอร์
  • กระบวนการอื่นกำลังใช้พอร์ต TCP (80) หรือพอร์ต SSL (443) ที่ IIS ต้องการ

ในการแก้ไขปัญหานี้เราจะต้องปรับใช้ยูทิลิตี Netstat.exe เพื่อตรวจสอบว่ากระบวนการอื่นกำลังใช้พอร์ตที่ระบุข้างต้น หากยูทิลิตีพิจารณาว่าไม่ได้ใช้พอร์ตเราจะตรวจสอบคีย์ย่อย ListenOnlyList เพื่อดูว่ามีการกำหนดค่าอย่างถูกต้องหรือไม่

นี่คือคำแนะนำทีละขั้นตอนตลอดทั้งเรื่อง:

  1. กดปุ่ม Windows + R เพื่อเปิดกล่องโต้ตอบเรียกใช้ จากนั้นพิมพ์“ cmd ” แล้วกด Ctrl + Shift + Enter เพื่อเปิดพร้อมท์คำสั่งที่ยกระดับ เมื่อได้รับแจ้งจาก UAC (การควบคุมบัญชีผู้ใช้) คลิก ใช่ เพื่อให้สิทธิ์ผู้ดูแลระบบ

    การเปิดหน้าต่างพร้อมรับคำสั่งที่ยกระดับ
  2. ภายในพรอมต์คำสั่งที่ยกระดับให้เรียกใช้คำสั่งต่อไปนี้เพื่อเริ่ม โปรแกรม อรรถประโยชน์ Netstat.exe :
     netstat -ano 
  3. เมื่อคุณได้รับผลตอบแทนให้เลื่อนดูรายการการ เชื่อมต่อที่ใช้งานอยู่ และตรวจสอบว่าพอร์ต 50 และ 443 กำลังถูกใช้งานโดยกระบวนการที่แตกต่างกันหรือไม่

    การตรวจสอบว่ามีการใช้พอร์ตโดยกระบวนการอื่น

    หมายเหตุ: หากพอร์ตต่าง ๆ กำลังถูกใช้โดยกระบวนการที่แตกต่างกันคุณเพียงแค่จัดการเพื่อระบุแหล่งที่มาของปัญหาของคุณ ในกรณีนี้ดูออนไลน์สำหรับขั้นตอนเฉพาะเกี่ยวกับวิธีการแก้ไขข้อขัดแย้งของพอร์ตตาม PID ของพอร์ต

  4. ปิดพรอมต์คำสั่งที่ยกระดับเนื่องจากเราไม่ต้องการสิทธิ์ผู้ดูแลระบบสำหรับขั้นตอนถัดไป
  5. หากไม่ได้ใช้พอร์ตอย่างแข็งขันให้กดปุ่ม Windows + R เพื่อเปิดกล่องโต้ตอบเรียกใช้ จากนั้นพิมพ์ ' regedit ' แล้วกด Enter เพื่อเปิด ตัวแก้ไขรีจิสทรี เมื่อได้รับแจ้งจาก UAC (การควบคุมบัญชีผู้ใช้) คลิก ใช่ เพื่อให้สิทธิ์ผู้ดูแลระบบ

    การเปิดยูทิลิตี้ Registry Editor
  6. ภายในตัวแก้ไขรีจิสทรีให้ใช้บานหน้าต่างด้านซ้ายเพื่อนำทางไปยังตำแหน่งต่อไปนี้:
     HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters \ ListenOnlyList 

    หมายเหตุ: ในกรณีที่คีย์ย่อย ListenOnlyList ไม่มีอยู่ไม่จำเป็นต้องสร้างขึ้นมาหนึ่งตัวเนื่องจากที่อยู่ IP ที่ 0.0.0.0 จะถูกใช้เป็นค่าเริ่มต้น

  7. ก่อนที่คุณจะไปข้างหน้าและแก้ไขคีย์ย่อย ListenOnlyList คุณจะต้องหยุดบริการ HTTP ที่กำลังเรียกใช้ IIS ดังนั้นให้ใส่ Registry Editor เป็นพื้นหลังในขณะที่เราจะกลับไปใช้ในอีกสักครู่
  8. จากนั้นกดปุ่ม Windows + R เพื่อเปิดกล่องโต้ตอบเรียกใช้พิมพ์ ' cmd ' แล้วกด Enter เพื่อเปิดหน้าต่างพรอมต์คำสั่งอื่น

    เรียกใช้กล่องโต้ตอบ: cmd
  9. ในพรอมต์คำสั่งให้เรียกใช้คำสั่งต่อไปนี้แล้วกด Enter เพื่อหยุดบริการ HTTP ที่รับผิดชอบการเรียกใช้ IIS:
     http หยุดสุทธิ 
  10. เมื่อถูกถามว่าคุณต้องการดำเนินการต่อหรือไม่ให้พิมพ์ 'Y' แล้วกด Enter เพื่อยืนยันการดำเนินการ

    ปิดใช้งานบริการ HTTP
  11. เมื่อปิดใช้งานบริการ HTTP แล้วให้ปิดหน้าต่างพรอมต์คำสั่งและกลับไปที่ Registry Editor
  12. เมื่อเลือกคีย์ย่อย ListenOnlyList ให้เลื่อนไปที่บานหน้าต่างด้านขวาและตรวจสอบให้แน่ใจว่ามีที่อยู่ IP ที่ถูกต้อง หากคุณพบที่อยู่ IP ที่ไม่ถูกต้องให้ลบออกหรือแก้ไขเพื่อแสดงรายการด้วยที่อยู่ IP ที่ถูกต้อง

    การลบค่าไบนารีด้วย IP ที่ไม่ถูกต้อง

    หมายเหตุ: ในกรณีที่คีย์ย่อย ListenOnlyList มีอยู่และที่อยู่ 0.0.0.0 อยู่ในรายการคุณจะต้องลบที่อยู่ IP อื่น ๆ ทั้งหมด

  13. ปิดตัวแก้ไขรีจิสทรีและรีสตาร์ทคอมพิวเตอร์ของคุณ
  14. ในการเริ่มต้นครั้งถัดไปบริการ HTTP ควรเริ่มต้นโดยอัตโนมัติ แต่เพื่อให้แน่ใจว่ากดปุ่ม Windows + R เพื่อเปิดกล่องโต้ตอบ Run อีกกล่อง จากนั้นพิมพ์“ cmd ” แล้วกด Enter เพื่อเปิดหน้าต่างพรอมต์คำสั่ง

    การเปิดหน้าต่างพร้อมรับคำสั่งปกติ
  15. ในพรอมต์คำสั่งที่เพิ่งเปิดใหม่พิมพ์คำสั่งต่อไปนี้เพื่อให้แน่ใจว่าบริการ HTTP เริ่มทำงานแล้ว:
     http เริ่มต้นสุทธิ 

    หมายเหตุ: หากคุณได้รับข้อความแจ้งว่า“ บริการที่ร้องขอได้เริ่มแล้ว” คุณก็พร้อมที่จะไป

  16. พยายามเริ่มบริการจากสแน็ปอิน Microsoft Internet Information Services (IIS) Microsoft Management Console (MMC) คุณไม่ควรพบข้อผิดพลาด 'กระบวนการไม่สามารถเข้าถึงไฟล์เพราะมันกำลังถูกใช้โดยกระบวนการอื่น' ข้อผิดพลาด

บทความที่น่าสนใจ