Windows 11/10/8/7에서 프로그램을 실행할 때 '프로그램 exe 또는 COM Surrogate가 작동을 멈췄습니다. 문제가 발생하여 프로그램이 올바르게 작동하지 않습니다. Windows에서 프로그램을 닫고 해결책이 있으면 알려드리겠습니다'라는 오류 메시지가 나타난다면, 몇 가지 문제 해결 방법을 시도해 볼 수 있습니다. 이 글에서는 해당 오류를 해결하는 실질적인 방법들을 단계별로 소개합니다.
COM Surrogate란 무엇인가?
dllhost.exe 프로세스는 COM Surrogate라는 이름으로 불리며, System32 폴더에 위치해 있습니다.
COM은 Component Object Model(구성 요소 개체 모델)의 약자입니다. 이 프로세스에 대한 공식 설명은 다음과 같습니다.
COM(Component Object Model)+ 기반 구성 요소의 구성 및 추적을 관리합니다. 이 서비스가 중지되면 대부분의 COM+ 기반 구성 요소가 제대로 작동하지 않으며, 서비스가 비활성화되면 명시적으로 이 서비스에 의존하는 모든 서비스가 시작되지 않습니다.
마이크로소프트의 설명에 따르면,
COM Surrogate는 요청한 프로세스 외부에서 실행되는 COM 개체를 위한 희생 프로세스(sacrificial process)입니다. 예를 들어, 탐색기는 썸네일을 추출할 때 COM Surrogate를 사용합니다. 썸네일 보기가 활성화된 폴더에 접근하면, 탐색기는 COM Surrogate를 실행하고 이를 통해 폴더 내 문서들의 썸네일을 계산합니다. 탐색기가 썸네일 추출기를 신뢰하지 않기 때문인데, 이들은 안정성 기록이 좋지 않기 때문입니다. 탐색기는 성능 저하를 감수하더라도 이런 불안정한 코드를 기본 탐색기 프로세스에서 분리함으로써 안정성을 높이는 방식을 선택했습니다. 썸네일 추출기가 충돌하더라도 그 충돌은 탐색기가 아닌 COM Surrogate 프로세스만 파괴하게 됩니다.
COM Surrogate 오류의 주요 원인
이러한 오류는 손상된 프로그램, UAC 설정, 악성코드 감염, DEP 설정 등 여러 가지 원인으로 발생할 수 있습니다. 최근에 장치 드라이버를 업데이트했다면 롤백 후 문제가 해결되는지 확인해 보세요. 최근에 문제가 시작되었다면 시스템 복원을 시도해 볼 수도 있습니다. 파일 탐색기 옵션에서 썸네일 표시를 비활성화하는 것도 도움이 되는 것으로 알려져 있습니다. 그래도 해결되지 않는다면 아래 방법들을 순서대로 시도해 보세요.
1. UAC(사용자 계정 컨트롤) 설정 확인
Windows 10/8/7에는 보안상의 이유로 프로그램의 관리자 권한 접근을 차단하는 UAC(User Account Control) 설정이 있습니다. 일부 프로그램은 정상적으로 실행되기 위해 관리자 권한이 필요하므로, 실행 파일을 마우스 오른쪽 버튼으로 클릭한 후 '관리자 권한으로 실행'을 선택해 보세요.
항상 관리자 권한으로 해당 프로그램을 실행하고 싶다면, 바로 가기를 마우스 오른쪽 버튼으로 클릭하고 속성 → 호환성 탭으로 이동하세요.
그런 다음 '관리자 권한으로 이 프로그램 실행' 항목에 체크하고 적용 / 확인을 클릭합니다.
또한 일부 프로그램은 Windows 11/10과 완전히 호환되지 않을 수 있으므로 호환성 모드를 활성화해야 할 때도 있습니다. 반대로 프로그램이 Windows 11/10과 호환된다면 호환성 모드를 활성화하지 마세요. 이미 활성화되어 있다면 체크를 해제하세요. 호환성 모드가 오히려 프로그램 충돌을 일으킬 수 있습니다.
2. 악성코드 감염 검사
여러 프로그램에서 동일한 오류가 발생한다면 Windows PC가 악성코드에 감염되었을 가능성이 있습니다. 이 경우 평판이 좋은 서드파티 독립형 백신 소프트웨어를 다운로드하여 PC를 검사하세요.
안전 모드로 재부팅한 후 전체 검사를 실행하는 것이 효과적입니다.
3. DEP(데이터 실행 방지) 설정 변경
DEP(Data Execution Prevention) 설정이 프로그램 충돌을 유발할 수 있습니다. 설정을 확인하려면 다음 단계를 따르세요.
- 시작 버튼을 클릭하고 컴퓨터(내 PC)를 마우스 오른쪽 버튼으로 클릭한 후 속성으로 이동합니다.
- 고급 시스템 설정을 클릭합니다.
- 고급 탭에서 성능 섹션의 설정을 클릭합니다.
- 데이터 실행 방지(DEP) 탭을 클릭합니다.
- '필수 Windows 프로그램 및 서비스에 대해서만 DEP 사용'이 선택되어 있는지 확인합니다.
- 적용을 클릭하고 확인을 누른 후 시스템을 재부팅합니다.
또는 '선택한 프로그램 및 서비스를 제외한 모든 프로그램 및 서비스에 대해 DEP 사용'을 선택한 후 추가 버튼을 클릭하여 다음 파일을 등록할 수 있습니다.
- 32비트 시스템: C:\Windows\System32\dllhost.exe
- 64비트 시스템: C:\Windows\SysWOW64\dllhost.exe
이후 적용/확인을 클릭합니다.
4. DLL 파일 다시 등록
관리자 권한으로 CMD(명령 프롬프트)를 열고 다음 명령어를 실행합니다.
regsvr32 vbscript.dll
regsvr32 jscript.dll
실행 후 문제가 해결되었는지 확인해 보세요.
위 방법들로도 해결되지 않는다면, 문제를 일으키는 특정 응용 프로그램을 다시 설치해 보세요.
오류가 Windows 구성 요소에서 발생하는 것이라면 SFC /SCANNOW 명령을 실행하여 시스템 파일 무결성을 검사해 보세요.
참고: '파일이 COM Surrogate에서 열려 있어 작업을 완료할 수 없습니다'라는 메시지가 표시되는 경우에도 유사한 방법으로 해결할 수 있습니다.