빈 ACL이 있는 파일을 제거할 수 없는 이상한 문제가 있습니다.
>icacls "avfilter-7_ms.dll" /grant Administrator:F
avfilter-7_ms.dll: Access is denied.
파일의 모양은 다음과 같습니다.
어떤 그룹이나 사용자도 이 개체에 액세스할 수 없습니다.
그러나 Windows 보안 UI를 사용하면 개체에 대한 모든 권한을 자신에게 추가할 수 있습니다. 삭제할 것이 수천 개 있습니다. 이것을 할 수 있는 방법이 있나요? icacls는 이 파일을 완전히 건드릴 수 없는 것 같습니다.
답변1
.NET을 약간 사용하여 ACL 항목을 추가하여 단일 파일을 삭제할 수 있었습니다(다음에는 Get-ChildItem에 ForEach가 필요함).
$rule = new-object System.Security.AccessControl.FileSystemAccessRule "Administrator", "FullControl", "Allow";
$p = "bad_file.txt"
$acl = [System.IO.File]::GetAccessControl($p);
$acl.SetAccessRule($rule);
[System.IO.File]::SetAccessControl($p, $acl);