【PowerShell】Remove-Itemで「~を削除できません: この操作を実行するために十分なアクセス権がありません。」の対処法

PowerShell

スポンサーリンク

PowerShellのRemove-Itemで以下のように適当なフォルダを削除しようとすると、以下のようなエラーが出る。

PS C:\tmp> Remove-Item .\folder\

確認
C:\tmp\folder\ の項目には子があり、Recurse
パラメーターが指定されていませんでした。続行した場合、項目と共にすべての子が削除されます。続行しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y
Remove-Item : 項目 C:\tmp\folder\新しいテキスト ドキュメント.txt を削除できません: この操作を実行するために十分なアクセス権がありません。
発生場所 行:1 文字:1
+ Remove-Item .\folder\
+ ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (新しいテキスト ドキュメント.txt:FileInfo) [Remove-Item], IOException
    + FullyQualifiedErrorId : RemoveFileSystemItemUnAuthorizedAccess,Microsoft.PowerShell.Commands.RemoveItemCommand
Remove-Item : ディレクトリ C:\tmp\folder\ は空ではないため、削除できません。
発生場所 行:1 文字:1
+ Remove-Item .\folder\
+ ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (C:\tmp\folder\:DirectoryInfo) [Remove-Item], IOException
    + FullyQualifiedErrorId : DirectoryNotEmpty,Microsoft.PowerShell.Commands.RemoveItemCommand

PS C:\tmp>

なんだかいろいろ書いてますが、「~を削除できません: この操作を実行するために十分なアクセス権がありません。」が重要。

削除対象に読み取り専用のファイルがあるとこのようなエラーが出るのです。

読み取り専用も関係なく削除したいなら、「-Force」をつければよい。

PS C:\tmp> Remove-Item .\folder\ -Force

確認
C:\tmp\folder\ の項目には子があり、Recurse パラメーターが指定されていませんでした。続行した場合、項目と共にすべての子が削除されます。続行しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y
PS C:\tmp>

これで問題なく削除できます。

PowerShell

Posted by ton