바이러스에 감염되었거나 시스템 레지스트리를 잘못 수정한 후에는 Windows에서 실행 파일(EXE), 설치 파일(MSI), PowerShell/CMD/VBScript 스크립트가 열리지 않는 문제가 발생할 수 있습니다. 파일 탐색기에서 프로그램이나 바로 가기를 실행해도 아무 반응이 없거나, '프로그램 선택' 창이 뜨거나, 모든 EXE 파일이 엉뚱한 프로그램(예: 메모장이나 그림판)으로 열리는 증상이 나타납니다. 이 글에서는 Windows에서 실행 파일이나 응용 프로그램을 전혀 실행할 수 없을 때 이 문제를 해결하는 방법을 단계별로 살펴보겠습니다.
Windows에서 손상된 EXE 파일 연결 복구하기
Windows에서 *.exe 응용 프로그램 파일을 실행하면 다음과 같이 프로그램을 선택하라는 창이 나타날 수 있습니다.

또는 다음과 같은 오류 메시지가 표시될 수 있습니다.
이 작업을 수행하는 데 연결된 앱이 없습니다. 앱을 설치하거나, 이미 설치된 경우 기본 앱 설정 페이지에서 연결을 만드세요.
Windows에서 지정된 장치, 경로 또는 파일에 액세스할 수 없습니다. 항목에 액세스할 수 있는 권한이 없을 수 있습니다.
Windows에서 이 파일을 열 수 없습니다.

이 문제는 대부분 바이러스 감염 후나 레지스트리 '최적화' 시도가 실패한 뒤에 발생합니다. 원인은 Windows 레지스트리에서 *.exe 파일의 연결 정보가 초기화되었기 때문입니다. 실행 파일 연결을 복구하려면 레지스트리 편집기(regedit.exe)를 사용해야 하는데, 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 파일조차 실행되지 않는다면 안전 모드에서 레지스트리를 수동으로 편집해야 합니다.
- 컴퓨터를 안전 모드로 부팅합니다(Windows 부팅 도중 전원 버튼을 세 번 연속 눌러 강제 종료).
- 컴퓨터가 Windows 복구 환경(WinRE)으로 부팅되면 문제 해결 → 고급 옵션 → 시작 설정 → 다시 시작을 차례로 선택하고, F4 키를 눌러 안전 모드로 진입합니다.
- 레지스트리 편집기(
regedit.exe)를 실행하고 HKEY_CLASSES_ROOT\.exe 키로 이동합니다. - 기본값(Default) 매개변수 값을 exefile로 변경합니다.

- 다음으로 HKEY_CLASSES_ROOT\exefile\shell\open\command로 이동하여 기본값을
"%1" %*으로 변경합니다.
- 같은 방식으로 HKCR\exefile\shell\open 및 HKCR\exefile 키에서도 기본값을
"%1" %*으로 변경합니다. - 정상적으로 컴퓨터를 재시작합니다. 이제 파일 탐색기가 기본 EXE 파일 연결을 사용하게 되며, *.exe 파일을 실행해 정상 작동 여부를 확인할 수 있습니다.
추가로 다음 사항들도 함께 점검하여 *.exe 파일 연결을 복구하는 것이 좋습니다.
- EXE 파일 연결 초기화 명령 실행:
assoc .exe=exefile - 레지스트리 키 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe 아래에 UserChoice 키가 있는지 확인하고, 있다면 삭제합니다.
- 다음 명령으로 Windows 이미지와 시스템 파일 무결성을 검사합니다.
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth - 백신 프로그램이 실행 파일의 실행을 차단하지 않는지 확인합니다.
- 실행 파일을 열 때 보안 경고가 표시된다면 해당 경고 해결 방법을 참고하여 처리하세요.
네트워크 공유 폴더의 EXE 파일이 실행되지 않는 경우
로컬 컴퓨터에서는 EXE 파일이 정상적으로 실행되지만, 네트워크 공유 폴더에서 실행할 때만 오류가 발생한다면 원인이 다를 수 있습니다.
- 공유 폴더 또는 파일의 현재 NTFS 권한을 확인합니다. 사용자에게 NTFS 읽기/실행(Read/Execute) 권한이 없으면 실행 파일 실행 시 다음과 같은 오류가 나타납니다.
Windows에서 \\server1\sharedfolder\file.exe에 액세스할 수 없습니다. application.exe 파일에 액세스할 권한이 없습니다.

NTFS 권한은 수동으로 또는 PowerShell을 통해 변경할 수 있습니다.

- 호환성 모드로 실행 파일을 실행해 보세요. EXE 파일 속성을 열어 호환성 탭으로 이동한 후 Windows 8 호환성 모드를 선택하고, 네트워크 공유 위치에서 응용 프로그램을 실행해 봅니다.

SMB v1 프로토콜만 지원하는 장치(NAS 스토리지, Windows XP나 Windows Server 2003처럼 구버전 OS를 사용하는 파일 서버 등)에 있는 공유 폴더에 접속하려는 경우에도 이 문제가 발생할 수 있습니다.
다음과 같은 오류가 이를 나타냅니다.
응용 프로그램이 제대로 시작되지 못했습니다 (0xc00000ba)
Exception thrown at 0x00007FFA2B86624E
0xC0000005: Access violation reading location 0x0000000000000000)
참고: 클라이언트와 서버가 SMB 프로토콜로 통신할 때는 양쪽에서 동시에 지원되는 최대 프로토콜 버전이 선택됩니다. PowerShell의 Get-SmbConnection cmdlet을 사용하면 파일 서버에 접속할 때 클라이언트가 사용 중인 SMB 버전을 확인할 수 있습니다.

파일 서버에서 SMBv2 또는 SMBv3가 활성화되어 있는지 다음 명령으로 확인하세요.
Get-SmbServerConfiguration | Select EnableSMB2Protocol
SMBv2가 비활성화되어 있다면 다음 명령으로 활성화할 수 있습니다.
Set-SmbServerConfiguration -EnableSMB2Protocol $true
또한 Linux Samba를 파일 서버로 사용하는 경우 구성 파일 smb.conf에서 SMB1을 비활성화할 수 있습니다. [global] 섹션에 min protocol = SMB2 줄을 추가한 후 Samba를 재시작하세요.
기본적으로 Windows Server 2003이나 SMB1만 지원하는 NAS 장치의 공유 폴더에는 최신 Windows에서 접근할 수 없습니다. 최신 Windows 10 빌드에서 이런 SMB 공유에 접근하려면 사용자 컴퓨터에서 SMB 1.0/CIFS 클라이언트 기능을 켜야 하지만, 보안상의 이유로 권장되지 않습니다.

이 경우 올바른 해결책은 실행 파일이 담긴 공유 폴더를 SMB1 프로토콜이 비활성화된 Windows Server 2012 R2/2016/2019로 마이그레이션하는 것입니다. 그러면 Windows 10 장치에서 공유 폴더의 실행 파일을 문제없이 실행할 수 있습니다.