icacls: "Acceso denegado" al intentar cambiar archivos propios con ACL vacía

icacls: "Acceso denegado" al intentar cambiar archivos propios con ACL vacía

Tengo un problema extraño en el que no puedo eliminar ningún archivo con una ACL vacía:

>icacls "avfilter-7_ms.dll" /grant Administrator:F
avfilter-7_ms.dll: Access is denied.

Así es como se ve el archivo:

enlace

Ningún grupo o usuario tiene acceso a este objeto.

Sin embargo, cuando uso la interfaz de usuario de seguridad de Windows, puedo agregarme como Control total al objeto. Tengo miles para borrar; ¿Hay alguna forma de hacer esto? icacls parece ser completamente incapaz de tocar estos archivos.

Respuesta1

Jugué un poco con .NET y pude agregar la entrada ACL para poder eliminar un solo archivo (necesita un ForEach en Get-ChildItem a continuación):

$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);

información relacionada