본문 바로가기

기타IT관련정보/윈도우

윈도우7 CMD.exe 실행오류(0xc0000142) 해결방법( XP,VISTA공통)

예전에 도스시절에 사용했던 명령어 COMMAND.COM처럼 윈도우에서도  CMD.EXE 라는 콘솔

을 통해 윈도우 명령을 처리할때가 있습니다. 특히 포터블 프로그램들이 CMD창을 많이 사용하게

되는데 며칠전에 CMD창을 실행하니 오류코드(0xc0000142) 와 함께 실행을 할수없다는 오류를

내더군요. 어이없는건 직접 %Windir%system32  폴더에 들어가서 실행해보면 멀쩡하게 실행된다는

것입니다. 얼마전 Tiny7을 EeePC에 설치하고나서 생긴문제인데 자주쓸일은 없지만 위에서 말한것

처럼 포터블 프로그램이 CMD창을 통해 중간명령을 수행하는경우가 많아 꽤나 불편했습니다.

검색해보니 역시 뻔한답이 대부분이더군요. '바이러스 검사, 악성코드 검사, 보안패치 설치여부확인'

하긴 시도할수 있는 해결방법은 일단 저것밖에 없었습니다. 몇개씩 돌려봤지만 악성코드라던지

바이러스는 없었습니다. 하지만 재부팅을 여러번 해봐도 결과는 같았습니다. 그래서 일단 해본것이

기존 CMD 삭제후 다른 PC의 CMD를 복사해 오기로 했습니다.

(이 방법은 바이러스,악성코드에 피해를 입은 경우 적용가능합니다.)

사용자 삽입 이미지
다음과 같이  CMD.EXE에서 속성을 보시면 보안탭에 고급이 있습니다. 그냥 복사해서 붙여넣기
하려고 하면 TrustedInstaller의 권한때문에 수행할수 없다고 뜨므로 권한을 편집하기 위해서입니다.

사용자 삽입 이미지

 현재 사용자가  Administrator로 되있으므로 이 계정이 모든권한을 가질수 있도록 사용권한변경
 버튼을 눌러줍니다.

사용자 삽입 이미지

편집(Administrator) - 모든 권한에 체크해주고  OK해준뒤 기존의 CMD파일을 삭제하고 복사해

봅니다.여기까지는 실제로 CMD파일이 악성코드나 바이러스로 망가졌을때 쓸수있는 좋은 방법

입니다. 고치고 나서야 알았지만 저의 경우는 실제로 망가진것이 아니라서 이렇게 해도 전혀 변화가

없었습니다.

(0xc0000142 오류가 날경우 해결방법)

사용자 삽입 이미지

시작 - 실행 - regedit 를 실행해서

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]

로 이동해보면 위와같이 ACP,MACCP,OEMCP,OEMHAL이 있습니다. 영문윈도우의 경우와

한글윈도우의 경우 위의 수치가 다른데 ACP는 기본 안시코드를 표현한것이고 OEMCP는

OEM기본 코드페이지를 나타냅니다. MACCP는 매킨토시 기본코드페이지를 나타내고 OEMHAL에

정의된 값은 명령프롬프트(CMD)에서 확장된 문자들에 대해 제어를 합니다. 근데 위에 보시면

ACP,OEMCP의 값이 949로 되있는데 이는 한글을 나타냅니다. Tiny7의 경우 기본적으로 영문

으로 코드페이지가 설정되있는데 한글언어팩을 적용하면 위의 수치로 바뀌게 됩니다. 저의 경우

문제는 커맨드창의 글꼴을 바꾸면서 생겼는데 일단 저의 경우외에도 이 값을 기본값으로 바꿔

준다면 이상없이 실행될것으로 예상됩니다. 그래서 일단 ACP를 1252(영문포함 웨스턴유럽어)로

바꿔주고 OEMCP값을 Windows NT 계열의 OS에서 쓰이는 기본 DOS 437로 바꿔줍니다.

바꿔준뒤 재부팅 하면 커맨드창이 제대로 실행되는것을 보실수 있습니다.

사용자 삽입 이미지

재시작후 CMD창이 제대로 실행되는것을 확인한뒤 다시 ACP,OEMCP 수치를 949로 바꾸고 재부팅후

커맨드창의 속성을 확인하시면 위와같이 현재 코드 페이지가 949로 되있는것을 확인할수 있습니다.