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