¿Cómo puedo establecer controles de auditoría en archivos propiedad de TrustedInstaller usando PowerShell?

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

Pregunta

Estoy tratando de establecer controles de auditoría en varios archivos (enumerados en ACLsWin.txt) situado en \%Windows%\System32 (por ejemplo, aaclient.dll) Usando el siguiente 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
}

Cada vez que ejecuto el script, recibo el error PermissionDenied [Set-Acl] UnauthorizedAccessException.

Esto parece provenir del hecho de que el propietario de estos archivos es TrustedInstaller. Estoy ejecutando estos scripts como administrador (aunque estoy en la cuenta de administrador incorporada) y todavía está fallando. Puedo establecer estos controles de auditoría a mano utilizando la pestaña de seguridad, pero hay al menos 200 archivos para los cuales hacer a mano puede conducir a errores humanos.

¿Cómo puedo mover? TrustedInstaller ¿Y establece estos controles de auditoría usando PowerShell?

¿Fue útil?

Solución

Desde la línea de comandos administrativos (ejecutar como administrador):

TakeOwn /f "FileName" /a

Dará la propiedad del archivo al grupo de administradores y le permitirá ejecutar su script.

También es posible que necesite usar el comando ICACLS para agregar o modificar los permisos para el grupo de administradores después de darle la propiedad del archivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top