我试图在许多文件上设置审核控件(在 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