perfmon 要求我提供 NT AUTHORITY\SYSTEM 凭证

perfmon 要求我提供 NT AUTHORITY\SYSTEM 凭证

我已经设置了自己的性能计数器数据收集器。它运行了一段时间,现在我想编辑它。单击“确定”后,它要求我输入 NT AUTHORITY\SYSTEM 的凭据!WTH?显然我不知道这些,我甚至认为没有任何密码! 在此处输入图片描述

我可以创建新的数据收集器集,但每次我尝试编辑某些数据时,它都会要求我这样做,并且我无法保存更改。

编辑:我说的是装有 Windows 10 Enterprise build 1903 的工作笔记本电脑。我像其他人一样使用它 - 拥有 AzureAD 帐户,该帐户也是本地管理员组的成员。我注意到相同行为的家用电脑是 Windows 10 Pro build 1903。在那里,我使用属于管理员组的本地用户帐户登录。

答案1

所以我不知道是什么原因造成的,但似乎我找到了一个解决方案/解决方法:每当它要求我提供这些凭据时,我只需从登录中删除该值并提交空值,这样就可以了......

答案2

我注意到 NT AUTHORITY\SYSTEM没有密码,因此空密码是该提示的正确输入。

我只能推测您的域帐户最终不是性能日志用户和/或性能监视器用户的本地组的成员,因此可能不是完整的本地管理员。

这些组的定义如下:

  • 性能日志用户
    该组的成员可以管理计算机上的性能计数器、日志和警报(本地和远程客户端),无需成为管理员组的成员。

  • 性能监视器用户
    该组的成员可以监视计算机上的性能计数器(本地和远程客户端),而无需成为管理员组或性能日志用户组的成员。

这篇文章中讨论了同样的问题 PerfMon 生成的文件的权限问题,其中写道:

数据收集器集可以包含有关计算机的敏感信息,因此访问它们通常要求用户至少是性能日志用户组的成员。

那里的解决方案实际上是一种变通方法,即创建一个计划任务,当数据收集器集完成运行时将触发该任务,以递归方式将目录结构的 ACL 修改为“每个人完全控制”。

为该作业创建触发器时出现问题,需要手动以 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>

触发器启动了以下 PowerShell 脚本:

$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
}

这个解决方案很复杂,因此在提示时继续输入空密码可能会更简单。

相关内容