Powershell에서 폴더 강제 삭제

4241 단어 PowerShell
PC를 새롭게 하고, 이전까지 시스템 드라이브로서 사용하고 있던 SSD를 새로운 PC의 데이터 보관 장소로 환장했습니다. 앱 폴더와 시스템 폴더는 더 이상 필요하지 않으므로 탐색기에서 삭제하려고했지만 권한 사정으로 거부됩니다.

자주 발생하는 것은 "이 폴더를 변경하려면 TrustedInstaller에서 사용 권한을 얻어야합니다."라는 오류입니다.


이를 침묵시키려면 폴더의 소유자 변경과 권한 부여가 필요합니다. 탐색기에서도 할 수 있지만 삭제하려는 폴더가 많아서 한 번 클릭이 번거롭기 때문에 재사용 가능한 PowerShell에서 실행하기로 결정했습니다.

이하, 그 순서입니다.

절차



PowerShell 시작



다음 방법 중 하나를 사용하여 관리자 권한으로 PowerShell을 시작합니다.
  • Windows 버튼을 마우스 오른쪽 버튼으로 클릭 → "Windows PowerShell(관리자)"을 클릭
  • Windows 키 →.

    PowerShell을 실행하는 사용자 확인


    Power 명령은 실행중인 사용자의 장치 이름과 사용자 이름을 표시합니다. 나중에 사용하므로 메모해 둡시다.
    PS C:\> whoami
    my-pc\kei
    

    위의 예제에서 장치 이름은 whoami, 사용자 이름은 my-pc입니다.

    폴더 소유자 변경, 권한 부여, 삭제



    사용하는 명령은 다음 세 가지입니다.
    # 所有者変更 (Linux の chown に相当)
    #  /r はサブフォルダーを含めて再帰的に処理
    takeown /s <デバイス名> /u <ユーザー名> /f <削除パス> /r
    
    
    # 権限変更 (chmod に相当) 
    #   :F は指定ユーザーにフルコントロール権限を与えるフラグ
    #   /T はサブフォルダーを含めて再帰的に処理
    icacls <削除パス> /grant <ユーザー名>:F /T
    
    
    # 削除 (rm -rf) に相当
    Remove-Item <削除パス> -Recurse -Force
    

    이를 바탕으로 kei 를 삭제하는 명령은 다음과 같습니다. 이번에는 삭제 대상 경로에 공백이 포함되어 있으므로 더블 따옴표로 둘러싸여 있습니다.
    takeown /s my-pc /u kei /f "E:\Program Files (x86)\*.*" /r
    icacls "E:\Program Files (x86)\*.*" /grant kei:F /T
    Remove-Item "E:\Program Files (x86)\" -Recurse -Force
    

    참고


  • Windows에서 강제로 디렉토리 삭제 - Qiita
  • 【 Remove-Item 】 cmdlet――파일이나 폴더를 삭제한다:Windows PowerShell 기본 Tips(4) - @IT
  • 좋은 웹페이지 즐겨찾기