파일을 삭제하고자 하는데, 삭제가 안 되는 경우가 있습니다. 이는 두 가지 원인 중의 하나 때문인데, 첫 번째는 파일 쓰기 권한이 없기 때문에 파일을 삭제할 수 없는 경우이고 두 번째는 삭제하려는 파일이 다른 프로그램 또는 윈도우 서비스에 의해 사용되고 있기 때문입니다. 첫 번째 원인은 파일에 소유권을 확보하면 되는데, 이에 대해서는  시스템 파일 퍼미션 획득 방법을 보시면 해결 방법을 알 수 있습니다.

이 포스트에서는 삭제하려는 파일이 사용 중인 경우에 삭제하는 방법에 대해서 알아 보겠습니다. 특히, 바이러스나 악성 코드에 감염 된 파일을 삭제하려는 경우 십중 팔구는 사용 중이라는 경고 메시지가 뜨는데, 아래에서 설명할 사용 중인 파일 삭제 방법을 익혀 두면 유용하게 써 먹을 수 있습니다. 단, 감염된 파일이 실행 파일이고 원 상태로 복구가 불가능 한 경우라면 해당 응용 프로그램을 사용할 수 없게 됩니다. 이 경우는 프로그램 제거를 통해 프로그램을 삭제하고 프로그램 폴더에서 남은 파일을 삭제한 후 해당 프로그램을 다시 설치해야 합니다.

사용 중인 파일을 삭제할 수 없는 이유

사용 중인 파일은 어떤 응용 프로그램인 사용 중이거나 윈도우 서비스가 사용 중 인 것을 의미합니다. 따라서, 이 사용 중인 파일을 삭제 가능하도록 하게 되면 응용 프로그램·윈도우 서비스가 죽게 되거나 아니면 데이터에 손실이 발생할 수 있습니다. 따라서, 이를 방지 하기 위해 사용 중인 파일을 삭제할 수 없는 것은 논리적인 결과 입니다.

사용 중인 파일을 삭제하는 방법

사용 중이라는 말 자체가 암시하듯 사용 중인 파일을 삭제하려면 이 파일을 사용하고 있는 응용 프로그램이나 윈도우 서비스를 종료 시킨 후 해당 파일을 삭제하면 됩니다. 아래 이미지에서 볼 수 있는 것처럼 메시지 자체가 해당 파일을 사용하고 있는 응용 프로그램을 알려 주는 경우가 있습니다. 아래의 예는 MS 워드에 삭제하려는 파일이 열려 있기 때문에 파일을 삭제할 수 없다는 메시지 입니다. 따라서, 이 경우에는 MS 워드를 종료한 후 해당 파일을 삭제하면 아무 문제 없이 삭제할 수 있습니다.

그러나, 위와 같이 사용 중인 응용 프로그램을 알려 주는 경우는 많지 않습니다. 대부분, 특히, 바이러스나 악성 코드에 감염된 경우는 어떤 응용 프로그램이 해당 파일을 사용하고 있는 지 알 수 없습니다. 따라서, 이 때는 다른 방법을 써야 하는데, 안전 모드로 들어 가서 삭제하던 지 아니면 wininit.ini 파일을 이용하는 방법, 두 가지가 있습니다.

  • #1 안전 모드(명령 프롬프트 사용)로 들어가서 삭제하는 방법
    부팅 직 후 윈도우 로고가 나오기 직전에 F8키를 누르면, 아래와 같은 검은색 바탕의 고급 옵션 메뉴로 들어 갑니다. 여기서 안전 모드(명령 프롬프트 사용)로 화살표 키를 이용하여 선택한 후 엔터를 누르면 명령 프롬프트를 사용하는 안전 모드로 부팅이 됩니다. 아래 이미지는 영무 윈도우에서 딴 것이라 Safe Mode with Command Prompt 를 선택하면 되지만, 한글 윈도우 안전 모드(명령 프롬프트 사용)을 선택하면 됩니다.
    안전 모드는 필수 드라이버와 윈도우 기본 프로그램·서비스 외에는 실행되지 않은 상태이므로 대부분의 경우 원하는 파일을 삭제할 수 있습니다. cd 명령어로 파일이 있는 폴더로 이동한 후 del 명령으로 파일을 삭제하면 됩니다.
     
  • #2 wininit.ini 파일을 이용하는 방법
    앞의 방법은 F8 키를 누르는 타이밍을 놓지면 다시 재부팅해서 적절한 타이밍에 F8키를 눌러야 하는 불편함이 있습니다. (부팅 화면이 나온 직 후에 F8키를 연타하면 타이밍을 놓치지 않을 수 있기 합니다만.....^^)
    하지만, wininit.ini 파일을 이용하면 좀 더 편리하게 필요한 파일을 다음 부팅시에 자동으로 삭제할 수 있습니다.
    wininit.ini 파일을 이용하는 방법은
    • C:\Windows 폴더 안에 있는 wininit.ini 파일을 메모장(또는 다는 텍스트 에디터)으로 엽니다. 만약에 wininit.ini 파일이 없다면 새로 만들면 됩니다. 윈도우 탐색기에서 확장자 .ini 파일을 만들 수 없다면 명령 프롬프트 관리자 권한으로 열고 C:\Windows 폴더로 이동한 후
      copy con wininit.ini 를 입력한 후 엔터를 누른 다음 Ctrl+Z를 눌러 ^Z가 표시되는 것을 확인한 후 엔터를 한 번 더 누르면 파일을 wininit.ini 파일을 만들 수 있습니다.
    • wininit.ini 파일 안에 [rename] 이라고 써 진 부분이 있는 지 확인 합니다. 없다면, 새로운 줄(line)에 [rename] 이라고 씁니다.
    • [rename] 아래 줄에,
      NUL=C:\폴더이름\파일이름 이라고 적습니다. 여기서 '폴더이름' 대신 파일이 있는 폴더 경로를 적어야 하고 '파일이름' 대신 삭제하려는 파일 이름과 확장자를 적어야 합니다. 예를 들면, 아래와 같습니다.
      [rename]
      NUL=C:\Program Files\npnoprotect\noneed.dll
    • 이제 wininit.ini 파일을 저장한 후 재 부팅을 하면 부팅 과정에서 위에서 지정한 파일이 자동으로 삭제됩니다.

어떤 파일을 삭제해야 하는 데 사용 중이라는 메시지가 떠서 삭제할 수 없는 경우 #1이나 #2 둘 중에 하나를 이용하면 대부분의 경우 삭제 됩니다. 하지만, 사용 중이라서 삭제할 수 없다는 메시지가 뜨는 파일은 윈도우에 꼭 필요한 파일인 경우도 많으니 삭제해도 이상이 없다는 확신이 있을 때 위에서 소개한 팁을 이용하시기 바랍니다.

신고

지난 포스트에서 비스타를 자동으로 일정 시간에 절전 모드로 들어가게 하는 포스트를 썼었습니다. 그런데, 자동으로 절전 모드로 들어가게 할 수 있다면, 절전 모드 상태에서 자동으로 원래의 상태로 복구할 수 있도록 설정할 수도 있지 않을까요?

예, 가능 합니다.

지난 번과 마찬 가지로 작업 스케줄러를 이용하여 설정할 수 있습니다. 역시 어떤 특정 프로그램이 실행되도록 설정을 하여 절전 모드를 중지하도록 설정하는 것입니다. 핵심 아이디어는 다음과 같습니다. 사용자가 여러 창을 띄워 놓고 작업 하던 중 절전 모드로 들어 갔다는 가정하에 특정 프로그램을 실행되도록 하는데, 이 특정 프로그램이 절전 모드를 그만 두도록 강제하고 PC가 절전 모드에서 깨어나면 이 특정 프로그램은 자동으로 종료되도록 하는 것입니다. 이렇게 자동으로 종료 되도록 하는 것은 원래 상태로 복귀할 때 이 특정 프로그램은 굳이 열려 있어야 할 필요가 없기 때문이죠. 이런 용도로 쓸 수 있는 프로그램으로 가장 적절한 것은 명령 프롬프트 입니다. cmd.exe 로 명령 프로프트를 실행할 수 있고 또 /c “exit” 옵션으로 자동으로 종료할 수 있게 할 수 있기 때문입니다.

그럼, 작업 스케줄러를 이용하여 자동으로 비스타를 절전 모드에서 깨우는 방법에 대해 단계별 설명 들어갑니다.

  • 우선, 작업 스케줄러를 열어야 겠지요. 시작 메뉴 검색 상자에 작업 스케줄러 를 입력한 후 Enter 키를 누르거나 보다 확실하게는 taskschd.msc 를 입력한 후 엔터키를 누르면 됩니다. UAC 승인 창이 뜨면 계속 버튼를 누르면 작업 스케줄러가 열립니다.
  • 오른쪽 패널에서 작업 만들기 를 클릭. 
  • 새 작업 만들기 창이 열리면 일반 탭에서 이름 옆의 상자에 원하는 이름을 입력합니다.(이름은 아무것이나 기억하기 좋은 이름이면 됩니다.) 그 다음으로 가장 높은 수준의 권한으로 실행 에 체크를 합니다.  
  • 트리거 탭에서 새로 만들기 버튼을 클릭. 
  • 새 트리거 만들기 창이 열리면 아래 이미지에 설명해 놓은 대로 설정을 합니다.
  • 이제 새 작업 만들기 창으로 다시 돌아 올 텐데, 동작 탭을 클릭한 후 새로 만들기 버튼을 클릭합니다. 
  • 새 동작 만들기 창이 열리면 동작은 프로그램 시작 으로 한 후, 프로그램/스크립트 아래의 상자에는 cmd.exe 를 인수 추가 옆의 상자에는 /c “exit” 을 입력한 후 확인 버튼을 클릭합니다. 앞에서 설명한 것처럼 /c “exit” 옵션은 명령 프로프트를 종료하라는 옵션입니다. 절전 모드에서 원래 상태로 복귀한 뒤에 명령 프롬프트가 계속 열려 있기를 바란다면, 이 옵션은 입력할 필요가 없습니다. 
  • 다시 새 작업 만들기 창으로 돌아 오면, 조건 탭을 클릭한 후 이 작업을 실행하기 위해 절전 모드 종료 에 체크를 합니다. 여기에 체크를 함으로써 앞에서 설정한 명령 프롬프트(cmd.exe)를 실행하기 위해 절전 모드를 끝내고 원래의 상태로 복구하게 됩니다. 
  • 자 이제 마지막 설정입니다. 새 작업 만들기 창에서 설정 탭을 클릭한 후 예약된 시작 시간을 놓친 경우 가능한 대로 빨리 작업 시작 에 체크를 합니다. 이 설정은 반드시 필요한 것은 아니지만, 돌다리도 두드리고 건너라는 속담처럼 만약 위에서 한 설정이 제대로 실행되지 않았다면, 다시 명령을 실행하라는 옵션입니다. 이제 확인 버튼을 클릭한 후 작업 스케줄러를 종료하면 모든 설정이 끝입니다.  

이상의 설정을 통해 윈도우 비스타를 절전 모드에서 원하는 시간에 자동으로 원래 상태로 돌아 오도록 할 수 있습니다. 물론, 이 설정이 힘을 발휘하려면 절전 모드를 자동으로 종료하도록 한 시간 이전에 자동이 되었든 아니면 수동이 되었든 여러분의 비스타가 절전 모드 상태이어야 합니다.

신고

윈도우 비스타에서는 관리자 계정으로 로그온 한 경우에도 특정 시스템 파일-hal.dll, winload.exe등-을 삭제하거나, 이름을 변경하는 따위의 작업을 할 수 없다. 대부분의 사용자는 이러한 시스템 파일과 관련한 작업을 할 필요가 없기 때문에 안전과 보안을 위해 이렇게 설정되어 있는 것이다. 그러나, 부팅 화면을 바꾼다든지 로그온 화면을 바꾼다든지 하는 경우 특정 시스템 파일을 백업한 후 새로운 파일로 변경해야 하는데, 윈도우 비스타에서는 파일 권한을 획득하지 않으면 이런 작업은 불가능하다. 하지만, 아래의 명령을 기억하고 있으면 파일 권한을 획득하여 원하는 작업을 할 수 있다. 단, 보안과 안전에 문제가 생길 수도 있으므로 반드시 필요한 경우가 아니면 적용하지 말기를 권한다.

특정 시스템 파일에 대한 권한을 획득하려면 두 가지 명령이 필요하다. 첫 번째는 파일에 대한 소유 권한을 획득하고 그 다음으로 파일 접근 권한을 획득해야 한다. 예를 들어, C:\Windows\Wystem32\ko-KR 폴더에 있는 winload.exe.mui 파일에 대한 권한을 획득하려 한다고 가정해 보자.

  • 우선 명령 프롬프트를 관리자 권한으로 실행한다. 시작 메뉴의 검색 박스에 cmd.exe를 입력한 후 프로그램 목록에 표시된 cmd.exe를 마우스 오른쪽 클릭한 후 '관리자 권한으로 실행'을 클릭한다. 또는 마우스 오른쪽 클릭할 필요 없이 Ctl+Shift+Enter키를 동시에 눌러도 된다.
  • 이제 명령 프롬프트 상에
    takeown /f c:\windows/system32/ko-kr/winload.exe.mui
    를 입력한 후 Enter키를 누른다. 아래와 비슷한 메시지가 표시되면 성공이다. 이로써 winload.exe.mui 에 대한 파일 권한을 현재 로그온 한 사용자가 갖게 된다. 위 명령에서 /f 는 filename을 의미한다. 
  • 이번에는 명령 프롬프트 상에
    cacls c:\windows/system32/ko-kr/winload.exe.mui /g 사용자계정이름:F
    를 입력한 후 Enter 키를 누른다. 이때 '사용자 계정 이름' 대신 자신의 로그온 이름을 입력해야 한다.
  • 이제 명령 프롬프트 상에 ‘계속하시겠습니까? (Y/N)’가 표시될 것이다. y를 입력한 후 Enter 키를 누른다. 아래와 비슷한 메시지가 표시되면 성공이다. 
     
    이로써 이제 파일에 대한 모든 접근(Full Contol) 권한도 얻게 되었다. 위에서 /g는 grant(수여함), :F는 Full Control을 의미한다.

같은 방법으로 takeown과 cacls 명령을 이용하면 다른 파일에 대한 소유 권한과 접근 권한도 얻을 수 있게 되어 삭제, 이름 변경, 덮어쓰기 등의 작업을 할 수 있게 된다. 단, 앞에서 언급한 것처럼 시스템 파일이 아닌 일반 파일은 이 명령을 쓸 필요가 없고 특정 시스템 파일에만 이 명령어를 이용하면 된다. 물론, 꼭 필요한 경우가 아니면 파일에 대한 권한을 변경하지 말 것을 권한다. 

신고

윈도우 사용자 계정의 비밀번호를 변경하려면 보통은 제어판의 사용자 계정으로 들어가서 Windows 암호 변경을 클릭하여 하게 될 것입니다. 하지만, 명령 프롬프트에서 쓰이는 명령어를 이용하여 간단하게 할 수 있는 방법도 있습니다. 일반 사용자들을 명령 프롬프트를 잘 이용할 일이 없겠지만 알아두면 편리하고 간단한 기능들도 있습니다.

사용자 계정의 비밀번호를 명령 프롬프트상에서 바꿀려면, 먼저 명령 프롬프트를 열어야 겠지요. 윈도우 XP 사용자는 실행창에서 cmd를 입력한 후 Enter키를 누르면 되고, 윈도우 비스타 사용자는 시작 메뉴의 검색 창에 cmd를 입력한 후 목록 창에 뜬 cmd.exe를 마우스 오른쪽 클릭하여 "관지자 권한으로 실행"을 클릭합니다.

이렇게 하여 명령 프롬프트를 연 후

net user 사용자계정이름 비밀번호

를 입력한 후 Enter키를 누르면 됩니다. 아래 이미지에서 볼 수 있는 것처럼 사용자 계정 이름에 스페이스가 있는 경우는 사용자 계정 이름을 따옴표로 묶어 주어야 합니다. 스페이스가 없는 경우는 따옴표 없이 입력해도 됩니다.
"The command completed successfully."란 메시지가 뜨면 비밀번호가 정상적으로 바뀐 것입니다. 다음 로그온부터는 방금전에 바꾼 비밀번호로 로그온 할 수 있게 됩니다. 

사용자 계정, 비밀번호

참고로

net user
라고만 입력하면 현재 사용자의 PC에 있는 사용자 계정을 표시해 줍니다. 자신의 사용자 계정 이름을 모를 경우에 이용하면 될 것입니다.
신고

윈도우 업데이트는 자동으로 설정해 놓는 것이 좋습니다. 따로 설정한 기억이 없다면, 자동으로 설정되어 있을 것입니다. 원래 그렇게 설정 (디폴트-Default)되어 있거든요. 그런데, 일부 업데이트 중에는 재부팅을 필요로 합니다. 윈도우 비스타에서는 재부팅을 필요로 하는 업데이트의 회수가 줄어 들었지만, 재부팅을 필요로 하는 업데이트가 없어진 것은 아닙니다. 이런 경우 윈도우 XP는 아예 자동으로 재 부팅을 하는 경우도 있고 윈도우 비스타는 10분 단위로 재부팅할 것을 알려주는 메시지 창이 뜹니다.

그런데, 문서 작업이나 그래픽 작업을 하고 있는 중인데, 위와 같은 메시지가 뜨면 귀찮죠. 하던 일을 마무리 지은 다음에 재부팅을 하고 싶은 데 말입니다. 이련, 경우는 다음 트릭을 쓰면 작업을 마칠 때까지 재부팅 메시지가 뜨지 않게 할 수 있습니다.

윈도우 업데이트후 재부팅 메시지가 뜨게 하지 않으려면,

1. 명령 프롬프트를 띄웁니다. XP는 실행창에다 cmd를 입력한 후 엔터를 누르면 되고, 비스타는 시작메뉴 검색 창에 cmd를 입력한 후 cmd 실행 링크를 찾아 주면 이를 관리자 권한으로 실행하면 됩니다.

2. 명령 프롬프트가 열렸으면,

net stop wuauserv 을 입력한 후 엔터를 누릅니다. 이렇게 하면 더이상 재부팅 팝업 메시지가 뜨지 않습니다.

작업을 마쳤으면 재부팅을 다시 하면 되겠죠. 아니면, net start wuauserv를 같은 방법으로 명령 프롬프트에서 실행해 주면 됩니다. net stop wuauserv 명령어를 입력한 후 다시 윈도우 업데이트 서비스를 재시작(net start wuauserv)하지 않으면, 더 이상 윈도우 자동 업데이트가 되지 않지 않냐고 걱정할 수 있지만, 다음 부팅 부터는 (디폴트 설정을 변경하지 않은 한) 윈도우 업데이트가 자동으로 실행  되니 걱정하지 않으셔도 됩니다.

신고

꼭 설치해야할 윈도우 비스타 업데이트

  1. KB938194: 호환성과 안정성 업데이트
  2. KB938979: 성능과 안전성 업데이트
  3. KB940105: 특정 게임 실행시 메모리를 많이 소모하는 버그 수정 업데이트
  4. KB936710: 두 개의 그래픽 카드가 있음에도 하나의 그래픽 카드만 실제로 사용하는 버그 수정 업데이트

1번과 2번은 모두에게 필요한 업데이트 이고 3번과 4번은 윈도우 비스타 환경에서 게임을 많이 하시는 분들을 위한 업데이트 입니다. 1번과 2번은 자동 업데이트 설정을 해 놓았다면 이미 설치가 되었을 것이지만, 3번과 4번은 따로 다운 로드 받어 설치해야 합니다. 위의 링크를 따라가면 다운로드 링크를 발견할 수 있을 것입니다.

3번이나 4번 업데이트 설치 시에 만약, “CoInitialize has not been called” 에러가 나면서 설치가 되지 않는다면,

명령 프롬프트를 열고 (시작 메뉴의 검색 상자에 cmd를 입력한 후 Enter를 누르면 됩니다.) 업데이트 파일을 다운 받은 위치로 이동한 후 “파일이름 /quiet /norestart” 를 따옴표 없이 입력한 후 Enter키를 눌러 보시기 바랍니다. 여기서 파일이름 대신 다운로드 받은 파일의 정확한 이름을 입력해야 합니다. 예를들어,  windows6.0-KB940105-x64.msu /quiet /norestart 라고 입력해야 합니다.


신고

저는 라우터(인터넷 공유기)로 세 대의 컴퓨터를 연결해서 쓰고 있습니다. 지난 번 포스트에서 말씀 드린 것처럼 이 중 한 대는 윈도우 홈 서버가 깔려 있고요. 오늘 말씀 드릴 문제는 나머지 두대의 컴퓨터중 한 대는 노트북으로 무선 인터넷을 쓰고 있는데, 노트북에서 다른 PC로 또는 그 반대 방향으로 파일을 복사하려면 파일 용량이 적으면 아무 문제가 없는데 용량이 커지면 네트워크 연결이 끊어지면서 파일 전송이 불가능하게 되는 일이 자주 발생하곤 합니다. 이렇게 해서 연결이 끊어지면 라우터를 껏다가 다시 켜지 않는 한 문제가 해결되지 않습니다. 오늘은 이 문제를 해결하려고 맘 먹고 검색을 해 보았습니다.

more..


신고


 

티스토리 툴바