0

我正在尝试使用以下 Powershell 脚本对ACLsWin.txt位于\%Windows%\System32(例如)中的多个文件(在 中列出)设置审核控制:aaclient.dll

$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 绕过和设置这些审计控制?

4

1 回答 1

1

从管理命令行(以管理员身份运行):

takeown /f "文件名" /A

将文件的所有权授予管理员组并允许您执行脚本。

在授予管理员组文件所有权后,您可能还需要使用 icacls 命令添加或修改管理员组的权限。

于 2013-11-12T19:23:51.563 回答