Как я могу установить элементы управления аудита в файлах, принадлежащих TrustedInstaller, используя PowerShell?

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

Вопрос

Я пытаюсь установить элементы управления аудитом на несколько файлов (перечисленные в ACLsWin.txt) находится в \%Windows%\System32 (Например, aaclient.dll) Используя следующий скрипт 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
}

Всякий раз, когда я запускаю скрипт, я получаю ошибку PermissionDenied [Set-Acl] UnauthorizedAccessException.

Похоже, это происходит из -за того, что владелец этих файлов TrustedInstaller. Анкет Я использую эти сценарии в качестве администратора (хотя я нахожусь в встроенной учетной записи администратора) и все еще терпит неудачу. Я могу установить эти элементы управления аудитом вручную, используя вкладку «Безопасность», но есть не менее 200 файлов, для которых выполнение вручную может привести к ошибкам человека.

Как я могу обойтись TrustedInstaller и установить эти элементы управления аудитом с помощью PowerShell?

Это было полезно?

Решение

Из административной командной строки (запустить в качестве администратора):

Takeown /F "Filename" /A

Даст право собственности на файл группе администраторов и позволит вам выполнить ваш сценарий.

Вам также может потребоваться использовать команду ICACLS, чтобы добавить или изменить разрешения для группы администраторов после того, как вы предоставите ей право собственности на файл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top