윈 도 우 안지워지는 DLL 파일 삭제하기
2018.02.13 00:33
파일들이나 폴더를 삭제하다 보면 가끔 DLL 파일이 삭제가 안돼는 경우가 있습니다.
아래와 같이 말이죠.
다른 프로세스가 그 DLL을 물고있어서 그렇습니다. 해당 프로세스를 정지시키면 DLL 파일을 삭제할 수가 있게 되는데요.
실행되고있는 프로세스마다 프로세스ID인 PID 값이 있습니다.
exe 파일은 작업관리자의 세부정보 탭을 보면 PID 를 확인할 수 있습니다.
그런데 작업관리자로는 안지워지는 DLL 파일이 어떤 프로세스(exe)를 물고있는지는 알 수가 없습니다.
그래서 다른 방법이 필요하게 되는데요.
여기서 필요한 툴이 "Process Explorer" 입니다.
MS에서 공식 배포하는 툴로 아래 주소에서 받을 수 있습니다.
https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer
다운 받고 실행하면 위에 "Find" 메뉴를 눌러 "Find Handle or DLL..."을 선택하면
검색창이 나오고 DLL 파일이름을 입력하고 검색해 결과가 나오면 거기서 PID 값을 확인할 수 있습니다.
그러면
아래와 같이 명령프롬프트를 열고
taskkill /pid xxxxx /f를 입력하면 (xxxx는 PID값) 해당 프로세스를 정지시킬 수 있습니다.
/f는 강제종료 옵션
만약에 정지시킨 PID가 윈도우의 explorer 프로세스이면, 종료되면서 바탕화면이 까맣게 되고 아무것도 안나오게 되는대요
그때는 Ctrl + Alt + Del 을 눌러서 보면 작업관리자를 실행시킬 수 있습니다.
위의 "파일 - 새작업실행"을 선택하고 explorer을 입력해 실행하면 까맣던 바탕화면이 다시 나타나게 됩니다.
explorer.exe는 전반적인 윈도우의 포괄적인 것들을 모니터링하며 실행되는 프로세스 입니다.
프로세스를 정지하고 DLL파일을 삭제하면 거의 대부분 지워질 것 입니다!!
감사합니다~~
가끔 속썩이는 메세지에 쩔쩔맸는데 해결책이 있었군요