Como posso definir controles de auditoria em arquivos de propriedade do TrustedInstaller usando o PowerShell?

StackOverflow https://stackoverflow.com/questions/19842666

Pergunta

Estou tentando definir controles de auditoria em vários arquivos (listados em ACLsWin.txt) localizado em \%Windows%\System32 (por exemplo, aaclient.dll) Usando o seguinte script PowerShell:

$FileList = Get-Content ".\ACLsWin.txt"
$ACL = New-Object System.Security.AccessControl.FileSecurity

$AccessRule = New-Object System.Security.AccessControl.FileSystemAuditRule("Everyone", "Delete", "Failure")
$ACL.AddAuditRule($AccessRule)
foreach($File in $FileList)
{
    Write-Host "Changing audit on $File"
    $ACL | Set-Acl $File
}

Sempre que eu corro o script, recebo o erro PermissionDenied [Set-Acl] UnauthorizedAccessException.

Isso parece vir do fato de que o proprietário desses arquivos é TrustedInstaller. Estou executando esses scripts como administrador (mesmo que eu esteja na conta do administrador interno) e ainda está falhando. Posso definir esses controles de auditoria manualmente usando a guia de segurança, mas existem pelo menos 200 arquivos para os quais fazer manualmente pode levar a erros humanos.

Como posso me locomover TrustedInstaller e definir esses controles de auditoria usando o PowerShell?

Foi útil?

Solução

Da linha de comando administrativa (executada como administrador):

Takewn /F "Nome do arquivo" /A

Dará a propriedade do arquivo ao grupo administradores e permitirá que você execute seu script.

Você também pode precisar usar o comando ICACLS para adicionar ou modificar as permissões para o Grupo de Administradores depois de dar a propriedade do arquivo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top