2008. 5. 26. 14:04

윈도우탐색기 폴더창 에러 IE 복구를 통한 해결

윈도우탐색기 폴더창 에러 IE 복구를 통한 해결


에러내용을 다음 이미지와 같은 현상입니다.

주로 Windows 2000에서 SP4를 설치하고난후 또는 윈도우업데이트를 한후에 윈도우탐색기의 폴더 탐색창에서 해당 컴포넌트를 호출하지 못하는 에러입니다.
또한 제어판의 프로그램 추가/삭제 창이 안뜨는 문제도 동일합니다.






윈도우 탐색기는 IE와 통합되어 있습니다. 그래서 이를 해결코자 IE재설치를 고려해 보지만 재설치나 제거하는 메뉴나 기능이 없습니다.
물론, SP4를 재설치하는 것도 하나의 방법이긴 합니다만 그것보다 IE 설치상 에러이기 때문에 IE만 재설치하면 됩니다.

다음과 같은 명령어를 실행하면 IE 재설치 및 복구항목이 나옵니다.

복구를 선택하시고 프로세스가 진행된후 재부팅을 하고나면 정상적으로 보입니다.

rundll32 setupwbv.dll,IE5Maintenance "C:\Program Files\Internet Explorer\Setup\SETUP.EXE" /g "C:\WINDOWS\IE Uninstall Log.Txt"

IE6이 설치되어 있으면 위 내용중 IE5 --> IE6을 바꿔서 실행해 주세요.


*참고사항

그런데, rundll32 이란건 뭔가?. rundll32는 32bit DLL 라이브러리 내에 작성된 함수를 명시적으로 호출하는 기능을 가지고 있습니다.

모든 dll 파일내의 함수호출이 가능한것은 아니고, dll 작성시 명시적으로 호출이 가능하도록 작성된 dll이 가능합니다.

DLL명령줄은 다음과 같은 형식입니다.
RUNDLL32.EXE <dllname>,<entrypoint> <optional arguments>

rundll32 를 통한 dll내 함수호출시 다음과 같은 순서로 작동됩니다.

1.명령줄 구문을 분석합니다.
2.LoadLibrary()를 통해 지정된 DLL을 로드합니다.
3.GetProcAddress()를 통해 <entrypoint> 함수의 주소를 얻습니다.
4.<entrypoint> 함수를 호출하고 명령줄 끝 정보인 <optional arguments>를
   전달합니다.
5.<entrypoint> 함수가 결과를 반환하면 Rundll.exe는 DLL을 언로드하고 종료됩니다.

이렇게 할려면, DLL작성시 위의 프로세스가 가능하도록 DLL을 만들어야 합니다.

자료 출처
http://www.wssplex.net/