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

ผู้ใช้ Windows หลายรายพบข้อผิดพลาด“ กระบวนการไม่สามารถเข้าถึงไฟล์ได้เนื่องจากถูกใช้โดยกระบวนการอื่น” โดยส่วนใหญ่ปัญหาจะเกิดขึ้นเมื่อผู้ใช้พยายามเรียกใช้คำสั่ง netsh ผู้ใช้บางรายรายงานว่าสำหรับพวกเขาข้อความแสดงข้อผิดพลาดจะปรากฏขึ้นเมื่อพวกเขาพยายามคลิกขวาที่เว็บไซต์ในสแน็ปอิน MMC ของ IIS (Internet Information Services) (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เพื่อเปิด Command Prompt ขึ้น
  2. เมื่อได้รับแจ้งจากUAC (User Account Control)ให้คลิกYesเพื่อให้สิทธิ์ผู้ดูแลระบบ
  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 (การคลิกเริ่มไม่ทำอะไรเลย) คุณจะต้องใช้ยูทิลิตี้ 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เพื่อเปิด Command Prompt ขึ้น เมื่อได้รับแจ้งจากUAC (การควบคุมบัญชีผู้ใช้)ให้คลิกใช่เพื่อให้สิทธิ์ผู้ดูแลระบบ
  2. ภายในพรอมต์คำสั่งที่ยกระดับให้รันคำสั่งต่อไปนี้เพื่อเริ่มยูทิลิตี้Netstat.exe :
    netstat -ano
  3. เมื่อคุณได้รับผลตอบแทนให้เลื่อนดูรายการActive Connectionsและตรวจสอบว่ามีการใช้พอร์ต 50 และ 443 หรือไม่โดยกระบวนการอื่น

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

  4. ปิด Command Prompt ที่ยกระดับเนื่องจากเราไม่ต้องการสิทธิ์ของผู้ดูแลระบบสำหรับขั้นตอนถัดไป
  5. ถ้าพอร์ตไม่ได้ใช้งานอยู่ให้กดปุ่มWindows + Rเพื่อเปิดกล่องโต้ตอบเรียกใช้ จากนั้นพิมพ์ ' regedit ' และกดEnterเพื่อเปิดโปรแกรม Registry Editor เมื่อได้รับแจ้งจากUAC (การควบคุมบัญชีผู้ใช้)ให้คลิกใช่เพื่อให้สิทธิ์ผู้ดูแลระบบ
  6. ภายใน Registry Editor ให้ใช้บานหน้าต่างด้านซ้ายเพื่อไปยังตำแหน่งต่อไปนี้:
    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เพื่อเปิดหน้าต่างพรอมต์คำสั่งอื่น
  9. ในพรอมต์ Cmd ให้รันคำสั่งต่อไปนี้และกดEnterเพื่อหยุดบริการ HTTP ที่รับผิดชอบในการรัน IIS:
    หยุดสุทธิ http
  10. เมื่อระบบถามว่าคุณต้องการดำเนินการต่อหรือไม่ให้พิมพ์ "Y" แล้วกด Enter เพื่อยืนยันการดำเนินการ
  11. เมื่อปิดใช้งานบริการ HTTP แล้วให้ปิดหน้าต่างพรอมต์คำสั่งและกลับไปที่ Registry Editor
  12. เมื่อเลือกคีย์ย่อยListenOnlyListแล้วให้เลื่อนไปที่บานหน้าต่างด้านขวาและตรวจสอบให้แน่ใจว่ามีที่อยู่ IP ที่ถูกต้อง หากคุณพบที่อยู่ IP ที่ไม่ถูกต้องให้ลบออกหรือแก้ไขเพื่อแสดงรายการที่มีที่อยู่ IP ที่ถูกต้อง

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

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

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

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