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