ผู้ใช้ Windows หลายคนเจอข้อผิดพลาด “The process cannot access the file because it is being used by another process” ส่วนใหญ่ปัญหาเกิดขึ้นเมื่อผู้ใช้พยายามรันคำสั่ง netsh บางผู้ใช้รายงานว่าสำหรับพวกเขา ข้อความข้อผิดพลาดปรากฏเมื่อพยายามคลิกขวาเว็บไซต์ใน IIS (Internet Information Services) MMC (Microsoft Management Console) snap-in

ปัญหานี้รายงานว่าพบได้บน Windows Vista, Windows 7, Windows 8.1, Windows 10 และ Windows Server หลายเวอร์ชัน
สาเหตุที่กระบวนการถูกใช้โดยกระบวนการอื่น
เราสำรวจปัญหานี้โดยดูจากรายงานผู้ใช้หลายรายและกลยุทธ์ซ่อมแซมที่พวกเขาใช้เพื่อแก้ไขปัญหา ตามที่เรารวบรวมได้ มีสถานการณ์ทั่วไปหลายอย่างที่จะกระตุ้นข้อความข้อผิดพลาดนี้:
- คำสั่งต้องการสิทธิ์แอดมิน — หากคุณเจอข้อผิดพลาดภายในเทอร์มินัล น่าจะเป็นเพราะคุณไม่มีสิทธิ์ผู้ดูแลระบบในการทำการเปลี่ยนแปลง ผู้ใช้หลายคนในสถานการณ์คล้ายกันแก้ไขปัญหาได้โดยการให้สิทธิ์แอดมิน
- กระบวนการอื่นใช้พอร์ต 80 หรือพอร์ต 443 — นี้เป็นเรื่องปกติกับคอมพิวเตอร์ที่รัน IIS (Internet Information Services) หากกระบวนการอื่นใช้พอร์ตทั้งสองนี้ คุณจะเห็นข้อความข้อผิดพลาดนี้
- รีจิสทรี ListenOnlyList ไม่ได้ตั้งค่าอย่างถูกต้อง — สถานการณ์ทั่วไปอีกอย่างกับ IIS (Internet Information Services) ที่จะกระตุ้นข้อผิดพลาดนี้คือ การตั้งค่ารีจิสทรี ListenOnlyList ไม่ถูกต้อง
หากคุณกำลังต่อสู้เพื่อแก้ไขข้อความข้อผิดพลาดนี้ บทความนี้จะให้คุณชุดขั้นตอนการแก้ไขที่ตรวจสอบแล้ว ด้านล่างคุณมีชุดวิธีที่ผู้ใช้คนอื่นในสถานการณ์คล้ายกันใช้เพื่อแก้ไขปัญหา
เพื่อผลลัพธ์ที่ดีที่สุด โปรดทำตามวิธีด้านล่างตามลำดับ จนกว่าคุณจะพบวิธีแก้ไขที่มีประสิทธิภาพในการแก้ไขข้อผิดพลาดในสถานการณ์เฉพาะของคุณ
มาเริ่มกัน!
วิธี 1: รันคำสั่งด้วยสิทธิ์แอดมิน
หากคุณได้ข้อผิดพลาดนี้เมื่อพยายามรันคำสั่ง netsh น่าจะเป็นเพราะคุณไม่มีสิทธิ์แอดมิน สิ่งนี้รายงานว่าพบได้บ่อยเมื่อผู้ใช้พยายามรันคำสั่งที่เพิ่มการข้อยกเว้นในช่วงพอร์ตไดนามิกสำหรับแอปพลิเคชัน Windows ต้นฉบับหรือแอปพลิเคชันบุคคลที่สาม
โปรดทราบว่าการดำเนินการแบบนี้จะต้องการสิทธิ์ผู้ดูแลระบบ เพื่อให้แน่ใจว่าหน้าต่าง CMD ที่คุณพยายามดำเนินการมีสิทธิ์แอดมิน โปรดทำตามขั้นตอนด้านล่าง:
- กด Windows key + R เพื่อเปิดกล่องโต้ตอบ Run พิมพ์ “cmd” และกด Ctrl + Shift + Enter เพื่อเปิด Command Prompt ที่มีสิทธิ์สูง (elevated)

- เมื่อได้รับแจ้งจาก UAC (User Account Control) ให้คลิก Yes เพื่อให้สิทธิ์แอดมิน
- ใน Command Prompt ที่มีสิทธิ์สูง ให้รันคำสั่งอีกครั้ง และดูว่าคุณยังเจอข้อความข้อผิดพลาดเดียวกันหรือไม่
หากคุณยังได้ข้อผิดพลาด “The process cannot access the file because it is being used by another process” หรือสถานการณ์นี้ไม่เกี่ยวข้อง ให้เลื่อนลงไปที่วิธีถัดไปด้านล่าง
วิธี 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 (การคลิก Start ไม่ทำอะไร) คุณจะต้องใช้ยูทิลิตี้ Netstat.exe เพื่อตรวจสอบว่ากระบวนการอื่นใช้พอร์ต 80 และพอร์ต 443 หรือไม่
ปัญหานี้พบได้บ่อยกับคอมพิวเตอร์ที่รัน Microsoft IIS 6.0 และ 7.0 ตามเอกสาร Microsoft อย่างเป็นทางการ ข้อความข้อผิดพลาดจะปรากฏหากเงื่อนไขต่อไปนี้ใดๆ เหมาะกับสถานการณ์ปัจจุบันของคุณ:
- รีจิสทรี ListenOnlyList ไม่ได้ตั้งค่าอย่างถูกต้องบนคอมพิวเตอร์ที่รัน IIS
- กระบวนการอื่นใช้ TCP port (80) หรือ SSL port (443) ที่ IIS ต้องการ
เพื่อแก้ไขปัญหานี้ เราจะต้องใช้ยูทิลิตี้ Netstat.exe เพื่อตรวจสอบว่ากระบวนการอื่นใช้พอร์ตที่ระบุหรือไม่ หากยูทิลิตี้ระบุว่าพอร์ตไม่ได้ถูกใช้ เราจะตรวจสอบ subkey ListenOnlyList ว่าตั้งค่าถูกต้องหรือไม่
นี่คือคำแนะนำทีละขั้นตอน:
- กด Windows key + R เพื่อเปิดกล่องโต้ตอบ Run พิมพ์ “cmd” และกด Ctrl + Shift + Enter เพื่อเปิด Command Prompt ที่มีสิทธิ์สูง เมื่อได้รับแจ้งจาก UAC (User Account Control) ให้คลิก Yes เพื่อให้สิทธิ์แอดมิน

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

หมายเหตุ: หากพอร์ตถูกใช้งานโดยกระบวนการอื่น คุณเพิ่งระบุแหล่งที่มาของปัญหา ในกรณีนี้ ให้ค้นหาออนไลน์ขั้นตอนเฉพาะในการแก้ไขข้อขัดแย้งพอร์ตตาม PID ของพอร์ต
- ปิด Command Prompt ที่มีสิทธิ์สูง เนื่องจากเราจะไม่ต้องการสิทธิ์แอดมินสำหรับขั้นตอนถัดไป
- หากพอร์ตไม่ได้ถูกใช้งาน ให้กด Windows key + R เพื่อเปิดกล่องโต้ตอบ Run พิมพ์ ‘regedit’ และกด Enter เพื่อเปิด Registry Editor เมื่อได้รับแจ้งจาก UAC (User account control) ให้คลิก Yes เพื่อให้สิทธิ์แอดมิน

- ใน Registry Editor ให้ใช้บานซ้ายเพื่อไปที่ตำแหน่งต่อไปนี้:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList
หมายเหตุ: หาก subkey ListenOnlyList ไม่มีอยู่ จะไม่จำเป็นต้องสร้าง เพราะที่อยู่ IP 0.0.0.0 จะถูกใช้โดยค่าเริ่มต้น
- ก่อนที่คุณจะไปแก้ไข subkey ListenOnlyList คุณจะต้องหยุดบริการ HTTP ที่รัน IIS ดังนั้น ให้วาง Registry Editor ไว้ข้างหลัง เราจะกลับมาที่นี่ในไม่ช้า
- ต่อไป กด Windows key + R เพื่อเปิดกล่องโต้ตอบ Run พิมพ์ ‘cmd’ และกด Enter เพื่อเปิดหน้าต่าง Command Prompt อีกอัน

- ใน Cmd prompt ให้รันคำสั่งต่อไปนี้และกด Enter เพื่อหยุดบริการ HTTP ที่รับผิดชอบรัน IIS:
net stop http
- เมื่อถามว่าคุณต้องการดำเนินการต่อหรือไม่ ให้พิมพ์ ‘Y’ และกด Enter เพื่อยืนยันการดำเนินการ

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

หมายเหตุ: หาก subkey ListenOnlyList มีอยู่ และที่อยู่ 0.0.0.0 ถูกรายการไว้ คุณต้องลบที่อยู่ IP อื่นๆ ทั้งหมด
- ปิด Registry Editor และรีสตาร์ทคอมพิวเตอร์
- ในการบูทครั้งถัดไป บริการ HTTP ควรเริ่มต้นโดยอัตโนมัติ แต่เพื่อให้แน่ใจ ให้กด Windows key + R เพื่อเปิดกล่องโต้ตอบ Run อีกอัน พิมพ์ “cmd” และกด Enter เพื่อเปิดหน้าต่าง Command Prompt

- ใน Command Prompt ที่เปิดใหม่ ให้พิมพ์คำสั่งต่อไปนี้เพื่อให้แน่ใจว่าบริการ HTTP เริ่มต้นแล้ว:
net start http
หมายเหตุ: หากได้ข้อความว่า “The requested service has been already started” แสดงว่าพร้อมแล้ว
- พยายามเริ่มบริการจาก Microsoft Internet Information Services (IIS) Microsoft Management Console (MMC) snap-in คุณควรไม่เจอข้อผิดพลาด ‘process cannot access the file because it is being used by another process’ อีกต่อไป