การแก้ไข: กระบวนการไม่สามารถเข้าถึงไฟล์เพราะมันถูกใช้โดยกระบวนการอื่น
ผู้ใช้ 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 ที่คุณพยายามดำเนินการนั้นมีสิทธิ์ของผู้ดูแลระบบให้ทำตามขั้นตอนด้านล่าง:
- กดปุ่ม Windows + R เพื่อเปิดกล่องโต้ตอบเรียกใช้ จากนั้นพิมพ์“ cmd ” แล้วกด Ctrl + Shift + Enter เพื่อเปิดพร้อมท์คำสั่งที่ยกระดับ
การเปิดหน้าต่างพร้อมรับคำสั่งที่ยกระดับ - เมื่อได้รับแจ้งจาก UAC (การควบคุมบัญชีผู้ใช้) คลิก ใช่ เพื่อให้สิทธิ์ผู้ดูแลระบบ
- ในพร้อมท์คำสั่งแบบยกระดับให้รันคำสั่งอีกครั้งและดูว่าคุณยังคงพบกับข้อความแสดงข้อผิดพลาดเดียวกันหรือไม่
หากคุณยังคงได้รับข้อผิดพลาด“ กระบวนการไม่สามารถเข้าถึงไฟล์ได้เนื่องจาก ข้อผิดพลาดนี้ กำลังถูกใช้โดยกระบวนการอื่น” หรือสถานการณ์นี้ไม่สามารถใช้งานได้ให้เลื่อนไปที่วิธีถัดไปด้านล่าง
วิธีที่ 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 เพื่อดูว่ามีการกำหนดค่าอย่างถูกต้องหรือไม่
นี่คือคำแนะนำทีละขั้นตอนตลอดทั้งเรื่อง:
- กดปุ่ม Windows + R เพื่อเปิดกล่องโต้ตอบเรียกใช้ จากนั้นพิมพ์“ cmd ” แล้วกด Ctrl + Shift + Enter เพื่อเปิดพร้อมท์คำสั่งที่ยกระดับ เมื่อได้รับแจ้งจาก UAC (การควบคุมบัญชีผู้ใช้) คลิก ใช่ เพื่อให้สิทธิ์ผู้ดูแลระบบ
การเปิดหน้าต่างพร้อมรับคำสั่งที่ยกระดับ - ภายในพรอมต์คำสั่งที่ยกระดับให้เรียกใช้คำสั่งต่อไปนี้เพื่อเริ่ม โปรแกรม อรรถประโยชน์ Netstat.exe :
netstat -ano
- เมื่อคุณได้รับผลตอบแทนให้เลื่อนดูรายการการ เชื่อมต่อที่ใช้งานอยู่ และตรวจสอบว่าพอร์ต 50 และ 443 กำลังถูกใช้งานโดยกระบวนการที่แตกต่างกันหรือไม่
การตรวจสอบว่ามีการใช้พอร์ตโดยกระบวนการอื่น หมายเหตุ: หากพอร์ตต่าง ๆ กำลังถูกใช้โดยกระบวนการที่แตกต่างกันคุณเพียงแค่จัดการเพื่อระบุแหล่งที่มาของปัญหาของคุณ ในกรณีนี้ดูออนไลน์สำหรับขั้นตอนเฉพาะเกี่ยวกับวิธีการแก้ไขข้อขัดแย้งของพอร์ตตาม PID ของพอร์ต
- ปิดพรอมต์คำสั่งที่ยกระดับเนื่องจากเราไม่ต้องการสิทธิ์ผู้ดูแลระบบสำหรับขั้นตอนถัดไป
- หากไม่ได้ใช้พอร์ตอย่างแข็งขันให้กดปุ่ม Windows + R เพื่อเปิดกล่องโต้ตอบเรียกใช้ จากนั้นพิมพ์ ' regedit ' แล้วกด Enter เพื่อเปิด ตัวแก้ไขรีจิสทรี เมื่อได้รับแจ้งจาก UAC (การควบคุมบัญชีผู้ใช้) คลิก ใช่ เพื่อให้สิทธิ์ผู้ดูแลระบบ
การเปิดยูทิลิตี้ Registry Editor - ภายในตัวแก้ไขรีจิสทรีให้ใช้บานหน้าต่างด้านซ้ายเพื่อนำทางไปยังตำแหน่งต่อไปนี้:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters \ ListenOnlyList
หมายเหตุ: ในกรณีที่คีย์ย่อย ListenOnlyList ไม่มีอยู่ไม่จำเป็นต้องสร้างขึ้นมาหนึ่งตัวเนื่องจากที่อยู่ IP ที่ 0.0.0.0 จะถูกใช้เป็นค่าเริ่มต้น
- ก่อนที่คุณจะไปข้างหน้าและแก้ไขคีย์ย่อย ListenOnlyList คุณจะต้องหยุดบริการ HTTP ที่กำลังเรียกใช้ IIS ดังนั้นให้ใส่ Registry Editor เป็นพื้นหลังในขณะที่เราจะกลับไปใช้ในอีกสักครู่
- จากนั้นกดปุ่ม Windows + R เพื่อเปิดกล่องโต้ตอบเรียกใช้พิมพ์ ' cmd ' แล้วกด Enter เพื่อเปิดหน้าต่างพรอมต์คำสั่งอื่น
เรียกใช้กล่องโต้ตอบ: cmd - ในพรอมต์คำสั่งให้เรียกใช้คำสั่งต่อไปนี้แล้วกด Enter เพื่อหยุดบริการ HTTP ที่รับผิดชอบการเรียกใช้ IIS:
http หยุดสุทธิ
- เมื่อถูกถามว่าคุณต้องการดำเนินการต่อหรือไม่ให้พิมพ์ 'Y' แล้วกด Enter เพื่อยืนยันการดำเนินการ
ปิดใช้งานบริการ HTTP - เมื่อปิดใช้งานบริการ HTTP แล้วให้ปิดหน้าต่างพรอมต์คำสั่งและกลับไปที่ Registry Editor
- เมื่อเลือกคีย์ย่อย ListenOnlyList ให้เลื่อนไปที่บานหน้าต่างด้านขวาและตรวจสอบให้แน่ใจว่ามีที่อยู่ IP ที่ถูกต้อง หากคุณพบที่อยู่ IP ที่ไม่ถูกต้องให้ลบออกหรือแก้ไขเพื่อแสดงรายการด้วยที่อยู่ IP ที่ถูกต้อง
การลบค่าไบนารีด้วย IP ที่ไม่ถูกต้อง หมายเหตุ: ในกรณีที่คีย์ย่อย ListenOnlyList มีอยู่และที่อยู่ 0.0.0.0 อยู่ในรายการคุณจะต้องลบที่อยู่ IP อื่น ๆ ทั้งหมด
- ปิดตัวแก้ไขรีจิสทรีและรีสตาร์ทคอมพิวเตอร์ของคุณ
- ในการเริ่มต้นครั้งถัดไปบริการ HTTP ควรเริ่มต้นโดยอัตโนมัติ แต่เพื่อให้แน่ใจว่ากดปุ่ม Windows + R เพื่อเปิดกล่องโต้ตอบ Run อีกกล่อง จากนั้นพิมพ์“ cmd ” แล้วกด Enter เพื่อเปิดหน้าต่างพรอมต์คำสั่ง
การเปิดหน้าต่างพร้อมรับคำสั่งปกติ - ในพรอมต์คำสั่งที่เพิ่งเปิดใหม่พิมพ์คำสั่งต่อไปนี้เพื่อให้แน่ใจว่าบริการ HTTP เริ่มทำงานแล้ว:
http เริ่มต้นสุทธิ
หมายเหตุ: หากคุณได้รับข้อความแจ้งว่า“ บริการที่ร้องขอได้เริ่มแล้ว” คุณก็พร้อมที่จะไป
- พยายามเริ่มบริการจากสแน็ปอิน Microsoft Internet Information Services (IIS) Microsoft Management Console (MMC) คุณไม่ควรพบข้อผิดพลาด 'กระบวนการไม่สามารถเข้าถึงไฟล์เพราะมันกำลังถูกใช้โดยกระบวนการอื่น' ข้อผิดพลาด