PC を新調し、以前までシステムドライブとして使っていた SSD を新しい PC のデータ置き場として換装しました。アプリフォルダーやシステムフォルダーはもう不要なので、エクスプローラーから削除しようとしましたが、権限の都合で拒否されます。
頻繁に遭遇したのは、 「このフォルダーを変更するには、TrustedInstaller からアクセス許可を得る必要があります」 というエラー。
これを黙らせるには、フォルダーの所有者変更と権限付与が必要です。エクスプローラー上からもできますが、削除したいフォルダが多くていちいちクリックが面倒だったので、再利用性の高い PowerShell で実行することにしました。
以下、その手順です。
手順
PowerShell を起動
以下のいずれかの方法で PowerShell を 管理者権限で 起動します。
- Windows ボタンを右クリック → "Windows PowerShell(管理者)" をクリック
- Windows キー →
Power
と入力 → PowerShell がサジェストされるので "管理者として実行" をクリック
PowerShell を実行中のユーザーを確認
whoami
コマンドにより、実行中ユーザーのデバイス名とユーザー名が表示されます。後で使うのでメモっておきましょう。
PS C:\> whoami
my-pc\kei
上の実行例では、デバイス名は my-pc
, ユーザー名は kei
です。
フォルダーの所有者変更、権限付与、削除
使うコマンドは以下の3つです。
# 所有者変更 (Linux の chown に相当)
# /r はサブフォルダーを含めて再帰的に処理
takeown /s <デバイス名> /u <ユーザー名> /f <削除パス> /r
# 権限変更 (chmod に相当)
# :F は指定ユーザーにフルコントロール権限を与えるフラグ
# /T はサブフォルダーを含めて再帰的に処理
icacls <削除パス> /grant <ユーザー名>:F /T
# 削除 (rm -rf) に相当
Remove-Item <削除パス> -Recurse -Force
これを踏まえて、 E:\Program Files (x86)
を削除するコマンドは以下のようになります。今回は削除対象のパスがスペースを含んでいるので、ダブルクォーテーションで囲っています。
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