我正在尝试使用以下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设置这些审核控制?
答案 0 :(得分:1)
从管理命令行(以管理员身份运行):
takeown / f“filename”/ A
将文件的所有权授予Administrators组,并允许您执行脚本。
您还可能需要使用icacls命令在为其授予文件所有权后添加或修改Administrators组的权限。