PerfMon 生成的文件的权限问题

PerfMon 生成的文件的权限问题

我们正在尝试使用 PerfMon 中的数据收集器集(在 Windows Server 2008R2 系统上)将一些数据记录到 CSV 文件中。

我们遇到的问题是我们(似乎)无法控制由 perfmon 创建的日志文件上设置的权限。

我们希望 perfmon 创建的日志文件具有 Everyone:F 权限(每个人的完全控制权)。因此,我们设置了一个目录结构,所有日志都放入一个文件夹中:

c:\vms\PerfMonLogs\%MACHINENAME% (例如 c:\vms\PerfMonLogs\EvaluationG2)

在上面的例子中,c:\vms\PerfMonLogs\EvaluationG2 具有权限 Everyone:F(下面是此目录的 icacls)

EVALUATIONG2/ 所有人:(OI)(CI)(F) NT AUTHORITY\SYSTEM:(OI)(CI)(F) BUILTIN\Administrators:(OI)(CI)(F) BUILTIN\Performance Log Users:(OI)(R)

当数据收集器集运行时,它会在 c:\vms\PerfMonLogs\EvaluationG2 中创建新的子文件夹和文件,例如(C:\vms\PerfMonLogs\EVALUATIONG2\M11d26y2012N3)

每个目录和文件均具有以下权限:

M11d26y2012N3 NT AUTHORITY\SYSTEM:(OI)(CI)(F) BUILTIN\Administrators:(OI)(CI)(F) BUILTIN\Performance Log Users:(OI)(R)

因此这些新文件夹并不是简单地从父文件夹继承权限(不知道为什么)。

现在,我们尝试使用收集器集上的安全选项卡添加 Everyone:F(无骰子)。

有什么想法吗?我们如何控制 perfmon 数据收集器集生成的日志文件的权限?

答案1

数据收集器集可能包含有关计算机的敏感信息,因此访问它们通常要求用户至少是性能日志用户组的成员。我不相信您可以像您所说的那样制作具有自动修改权限(Everyone FullControl)的 DCS。

这是一个怎样的解决方法:

将此 PS 脚本作为计划任务运行:

$Path = "C:\PerfLogs\Admin\New Data Collector Set"
$ACL  = (Get-Item $Path).GetAccessControl("Access")
$ACE  = New-Object System.Security.AccessControl.FileSystemAccessRule("Everyone", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
$ACL.AddAccessRule($ACE)
ForEach($_ In Get-ChildItem $Path -Recurse)
{
    Set-Acl -ACLObject $ACL $_.FullName
}

我在装有 PS 2.0(与 2008R2 相同)的 Windows 7 上对此进行了测试,并确认它确实在 $Path 变量中定义的目录下的每个对象上递归地放置了“Everyone Full Control”ACE。

编辑:起初我想使用 DCS 的属性页中的任务选项卡,“当数据收集器集停止时运行此计划任务”,但这不是针对计划任务,而是 WMI 任务。

编辑 #2:好吧,这变得相当疯狂,但您可以创建一个新的计划任务,其触发器将启动“事件发生时”。然后单击“自定义”,再单击“新事件过滤器”。然后手动编辑 XML 过滤器:

<QueryList>
  <Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
    <Select Path="Microsoft-Windows-TaskScheduler/Operational">
        *[System[TimeCreated[timediff(@SystemTime) &lt;= 3600000]]]
         and
        *[System[(EventID='102')]]
         and
        *[EventData[Data and (Data='YOUR DATA COLLECTOR SET NAME')]] 
    </Select>
  </Query>
</QueryList>

现在,您将创建一个计划任务,该任务将在您的数据收集器集完成运行时触发,并且它将递归地将目录结构的 ACL 修改为“每个人完全控制”。

相关内容