icacls: “Acesso negado” tentando alterar arquivos de propriedade com ACL vazia

icacls: “Acesso negado” tentando alterar arquivos de propriedade com ACL vazia

Estou com um problema estranho em que não consigo remover nenhum arquivo com uma ACL vazia:

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

Esta é a aparência do arquivo:

link

Nenhum grupo ou usuário tem acesso a este objeto.

No entanto, quando uso a interface de segurança do Windows, posso me adicionar como Controle Total ao objeto. Tenho milhares para deletar; existe uma maneira de fazer isso? icacls parece ser completamente incapaz de mexer nesses arquivos.

Responder1

Brinquei um pouco com o .NET e consegui adicionar a entrada ACL para que eu pudesse excluir um único arquivo (precisa de um ForEach em Get-ChildItem a seguir):

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

informação relacionada