หลังจากติดไวรัสหรือเปลี่ยนแปลงรีจิสทรีของระบบอย่างไม่ถูกต้อง ผู้ใช้อาจพบว่าไฟล์ EXE ที่ปฏิบัติการได้ (ไฟล์การติดตั้ง MSI หรือไฟล์ PowerShell/CMD/VBScript) ไม่เปิดขึ้นใน Windows เมื่อคุณเรียกใช้โปรแกรมใดๆ (ทางลัด) จาก File Explorer จะไม่มีอะไรเกิดขึ้น มีหน้าต่างปรากฏขึ้นเพื่อขอให้คุณเลือกโปรแกรมหรือไฟล์ EXE ทั้งหมดเปิดในโปรแกรมอื่น (เช่น ใน notepad.exe หรือใน paint.exe) ในบทความนี้ เราจะมาดูวิธีแก้ปัญหาเมื่อคุณไม่สามารถเรียกใช้ไฟล์ปฏิบัติการหรือแอพพลิเคชั่นบน Windows ได้
จะแก้ไขการเชื่อมโยงไฟล์ EXE ที่ใช้งานไม่ได้บน Windows ได้อย่างไร
เมื่อคุณเรียกใช้ไฟล์แอปพลิเคชัน *.exe ใน Windows จะมีหน้าต่างปรากฏขึ้นเพื่อขอให้คุณเลือกโปรแกรม (How do you want to open this file?
):
หรือข้อผิดพลาดปรากฏขึ้น:
This file does not have an app associated with it for performing this action. Please install an app, if one is already installed, create an association in the Defaults Apps Settings page.
Windows cannot access the specified device, path, or file. You may have the appropriate permissions to access the item.
Windows can't open this file.
ปัญหานี้มักปรากฏขึ้นหลังจากติดไวรัสหรือพยายาม "เพิ่มประสิทธิภาพ" รีจิสทรีของ Windows ไม่สำเร็จ สาเหตุของปัญหานี้คือการเชื่อมโยงไฟล์สำหรับไฟล์ *.exe ถูกรีเซ็ตในรีจิสทรีของ Windows ในการคืนค่าการเชื่อมโยงสำหรับไฟล์ปฏิบัติการบน Windows คุณต้องใช้ Registry Editor (regedit.exe) แต่จะไม่เปิดขึ้นเนื่องจากเป็นไฟล์สั่งการด้วย cmd.exe และ PowerShell ไม่เปิดขึ้น จะทำอย่างไรในกรณีนี้?
- สร้างไฟล์ข้อความอย่างง่ายบนเดสก์ท็อปของคุณ
- วางบรรทัดต่อไปนี้ลงในไฟล์:
start cmd
- เปลี่ยนชื่อไฟล์เป็น run.bat;
- คลิกขวาที่ไฟล์และเลือกเรียกใช้ในฐานะผู้ดูแลระบบ;
- ยืนยันการยกระดับสิทธิ์ใน UAC แล้วหน้าต่างพรอมต์คำสั่งที่ยกระดับจะเปิดขึ้น
- คุณสามารถเรียกใช้ regedit.exe และทำการเปลี่ยนแปลงรีจิสทรีด้วยตนเอง (วิธีการที่อธิบายไว้ด้านล่าง) หรือวางโค้ดต่อไปนี้ลงในหน้าต่างพรอมต์คำสั่ง:
reg delete HKEY_CLASSES_ROOT\.exe /ve /f
reg add HKEY_CLASSES_ROOT\.exe /ve /d exefile /f
reg delete HKEY_CLASSES_ROOT\exefile /ve /f
reg add HKEY_CLASSES_ROOT\exefile /ve /d Application /f
reg delete HKEY_CLASSES_ROOT\exefile\shell\open\command /ve /f
reg add HKEY_CLASSES_ROOT\exefile\shell\open\command /f /ve /d "\"%1\" %*\"
assoc .exe=exefile
- คำสั่งเหล่านี้จะรีเซ็ตการเชื่อมโยงไฟล์ EXE เป็นค่าเริ่มต้น
- รีสตาร์ทคอมพิวเตอร์และลองเรียกใช้แอปใดๆ
หากไฟล์ *.bat และ *.cmd ไม่เริ่มทำงานในคอมพิวเตอร์ของคุณ คุณจะต้องแก้ไขรีจิสทรีด้วยตนเองในเซฟโหมด
- บูตคอมพิวเตอร์เข้าสู่ Safe Mode (เพียงแค่ขัดจังหวะการบูต Windows โดยกดปุ่มเปิด/ปิดสามครั้งติดต่อกัน)
- คอมพิวเตอร์จะบูตเข้าสู่ Windows Recovery Environment (WinRE) เลือกแก้ไข -> ตัวเลือกขั้นสูง -> การตั้งค่าเริ่มต้น -> รีสตาร์ท กด F4 เพื่อบูต Windows ในเซฟโหมด
- เรียกใช้ Registry Editor (
regedit.exe
) และไปที่คีย์ reg HKEY_CLASSES_ROOT\.exe; - เปลี่ยน ค่าเริ่มต้น ค่าพารามิเตอร์รีจิสทรีเป็น exefile;
- จากนั้นไปที่ HKEY_CLASSES_ROOT\exefile\shell\open\command และเปลี่ยนค่าของ ค่าเริ่มต้น พารามิเตอร์เป็น
"%1" %*
- จากนั้น โดยการเปรียบเทียบ ให้เปลี่ยนค่าของพารามิเตอร์เริ่มต้นเป็น
"%1" %*
ใน HKCR\exefile\shell\open และ HKCR\exefile รีจิสตรีคีย์ - รีสตาร์ทคอมพิวเตอร์ตามปกติ File Explorer ควรใช้การเชื่อมโยงไฟล์ EXE เริ่มต้น ลองเรียกใช้ไฟล์ *.exe
นอกจากนี้ คุณควรตรวจสอบขั้นตอนเหล่านี้เพื่อกู้คืนการเชื่อมโยงไฟล์ *.exe:
- ดำเนินการคำสั่งเพื่อรีเซ็ตการเชื่อมโยงไฟล์ EXE:
assoc .exe=exefile
- ตรวจสอบว่า UserChoice คีย์หายไปในรีจิสตรีคีย์ HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe หากมีคีย์ดังกล่าว ให้ลบออก
- ตรวจสอบความสมบูรณ์ของอิมเมจ Windows และไฟล์ระบบโดยใช้คำสั่ง:
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth - ตรวจสอบให้แน่ใจว่าโปรแกรมป้องกันไวรัสของคุณไม่ได้บล็อกการเปิดไฟล์ปฏิบัติการ
- หาก Windows แสดงคำเตือนด้านความปลอดภัยเมื่อเปิดไฟล์ปฏิบัติการ ให้ทำตามคำแนะนำในบทความนี้
Windows ไม่สามารถเรียกใช้ไฟล์ EXE จากการแชร์เครือข่าย
หากผู้ใช้สามารถเรียกใช้ไฟล์ EXE ในเครื่องคอมพิวเตอร์ของตนได้ แต่เกิดข้อผิดพลาดขึ้นเมื่อเปิดไฟล์จากโฟลเดอร์ที่แชร์บนเครือข่าย สาเหตุของปัญหาอาจแตกต่างกัน
- ตรวจสอบการอนุญาต NTFS ปัจจุบันสำหรับโฟลเดอร์หรือไฟล์ที่แชร์ หากผู้ใช้ไม่ได้รับการกำหนด NTFS อ่าน/ดำเนินการ อนุญาต จากนั้นจะมีข้อผิดพลาดปรากฏขึ้นเมื่อเรียกใช้ไฟล์ปฏิบัติการ:
Windows cannot access \\server1\sharedfolder\file.exe. You do not have permission to access applicatin.exe file.
เปลี่ยนการอนุญาต NTFS ด้วยตนเองหรือผ่าน PowerShell
- ลองเรียกใช้ไฟล์ปฏิบัติการในโหมดความเข้ากันได้ ในการดำเนินการนี้ ให้เปิดคุณสมบัติของไฟล์ EXE ไปที่ ความเข้ากันได้ แท็บ เลือกโหมดความเข้ากันได้กับ Windows 8 ลองเรียกใช้แอปพลิเคชันจากการแชร์เครือข่าย
ปัญหาอาจเกี่ยวข้องกับการที่คุณพยายามเชื่อมต่อกับโฟลเดอร์ที่ใช้ร่วมกันซึ่งอยู่ในอุปกรณ์ที่รองรับเฉพาะ SMB v1 โปรโตคอล (อาจเป็นอุปกรณ์จัดเก็บข้อมูล NAS เซิร์ฟเวอร์ไฟล์ที่มีระบบปฏิบัติการรุ่นเก่า เช่น Windows XP หรือ Windows Server 2003)
ข้อผิดพลาดอาจบ่งบอกถึงสิ่งนี้:
The application was unable to start correctly (0xc00000ba)
Exception thrown at 0x00007FFA2B86624E
0xC0000005: Access violation reading location 0x0000000000000000)หมายเหตุ . เมื่อไคลเอ็นต์และเซิร์ฟเวอร์โต้ตอบกันผ่านโปรโตคอล SMB เวอร์ชันโปรโตคอลสูงสุดจะถูกเลือกสำหรับการสื่อสาร ซึ่งได้รับการสนับสนุนโดยไคลเอ็นต์และเซิร์ฟเวอร์พร้อมกัน (ดูบทความเวอร์ชัน SMB ใน Windows) คุณสามารถกำหนดเวอร์ชัน SMB ที่ไคลเอ็นต์ของคุณใช้เพื่อเชื่อมต่อกับไฟล์เซิร์ฟเวอร์โดยใช้
Get-SmbConnection
cmdlet ของ PowerShell
ตรวจสอบว่าเปิดใช้งาน SMBv2 หรือ SMBv3 บนเซิร์ฟเวอร์ไฟล์ของคุณโดยใช้คำสั่ง:
Get-SmbServerConfiguration | Select EnableSMB2Protocol
หากปิดใช้งาน SMBv2 คุณสามารถเปิดใช้งานได้:
Set-SmbServerConfiguration -EnableSMB2Protocol $true
นอกจากนี้ หากคุณใช้ Linux Samba เป็นไฟล์เซิร์ฟเวอร์ คุณสามารถปิดการใช้งาน SMB1 ในไฟล์การกำหนดค่า smb.conf . เพิ่มบรรทัด min protocol = SMB2
ไปที่ [global]
ส่วนและรีสตาร์ทแซมบ้า
ตามค่าเริ่มต้น คุณไม่สามารถเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันซึ่งโฮสต์บนเซิร์ฟเวอร์ไฟล์ที่ใช้ Windows Server 2003 หรือบนอุปกรณ์ NAS ที่รองรับ SMB1 เท่านั้น ในการเข้าถึงการแชร์ SMB จาก Windows 10 รุ่นใหม่ คุณต้องเปิดใช้งาน ไคลเอ็นต์ SMB 1.0/CIFS บนคอมพิวเตอร์ของผู้ใช้ (ซึ่งไม่แนะนำด้วยเหตุผลด้านความปลอดภัย)
วิธีแก้ปัญหาที่ถูกต้องในกรณีนี้คือการย้ายการแชร์ที่มีไฟล์สั่งการไปยัง Windows Server 2012 R2/2559/2019 โดยที่โปรโตคอล SMB1 ถูกปิดใช้งาน ในกรณีนี้ คุณจะสามารถเรียกใช้ไฟล์ปฏิบัติการที่อยู่ในโฟลเดอร์ที่ใช้ร่วมกันได้จากอุปกรณ์ Windows 10