如何使用Powershell为TrustedInstaller拥有的文件设置审计控制?

时间:2013-11-07 17:30:32

标签: powershell windows-7 permissions audit

我正在尝试使用以下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设置这些审核控制?

1 个答案:

答案 0 :(得分:1)

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

  

takeown / f“filename”/ A

将文件的所有权授予Administrators组,并允许您执行脚本。

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