como remover regras de auditoria de arquivos via Powershell?

2

aqui está um script para ativar uma regra de auditoria:

$path = 'C:\...\*'
$ACL = new-object System.Security.AccessControl.FileSecurity
$AccessRule = new-object System.Security.AccessControl.FileSystemAuditRule("everyone","ExecuteFile","success")
$ACL.SetAuditRule($AccessRule)

$dircont = gci $path -include "*.dot"
foreach ($file in $dircont)
        {
        $ACL | Set-Acl $file
        }

MAS o que eu quero fazer é, para qualquer arquivo, remover todas e quaisquer regras de auditoria. Então, digamos que você não saiba o que os usuários têm como auditoria ou para quais ações, você só quer se livrar de tudo isso ... Como eu acho que poderia fazer algo como:

$AccessRule = new-object System.Security.AccessControl.FileSystemAuditRule("everyone","ExecuteFile","none")

Mas isso só ajuda se você souber quais usuários já estão configurados para serem auditados no arquivo ... espero que isso faça sentido. Obrigado por qualquer ajuda.

    
por Jordan W. 19.06.2009 / 22:35

2 respostas

3

é um pouco mais complicado remover regras, você terá que procurar em todos os arquivos ...

foreach($file in $somewhere) 
{
  $acl = Get-Acl $file -Audit
  $acl.GetAuditRules($True, $False, [System.Security.Principal.SecurityIdentifier]) |Foreach-Object { $acl.RemoveAuditRule($_); }
  Set-Acl $file $acl
}

Documentação para GetAuditRules (e seus parâmetros ocultos)

    
por 19.06.2009 / 23:42
0

Isso não resolve sua pergunta, eu não sei como, mas seu script pode ser limpo um pouco:

$path = 'C:\...\*'
$ACL = new-object Security.AccessControl.FileSecurity
$AccessRule = new-object Security.AccessControl.FileSystemAuditRule '
                   everyone, ExecuteFile, success
$ACL.SetAuditRule($AccessRule)
gci $path -filter *.dot | Set-Acl -acl $ACL
    
por 19.06.2009 / 23:04