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