![perfmon 要求我提供 NT AUTHORITY\SYSTEM 凭证](https://linux22.com/image/1610913/perfmon%20%E8%A6%81%E6%B1%82%E6%88%91%E6%8F%90%E4%BE%9B%20NT%20AUTHORITY%5CSYSTEM%20%E5%87%AD%E8%AF%81.png)
我已经设置了自己的性能计数器数据收集器。它运行了一段时间,现在我想编辑它。单击“确定”后,它要求我输入 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) <= 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
}
这个解决方案很复杂,因此在提示时继续输入空密码可能会更简单。