MicrosoftDNS Statistics 类的 WMI 命名空间中的错误?

Mar*_*son 5 domain-name-system wmi windows-server-2012

我正在尝试通过 WMI 从 Windows Server 2012 查询 DNS 统计信息。

如果我在 Powershell 中运行以下命令:

Get-WmiObject -Namespace root\MicrosoftDNS -Class MicrosoftDNS_Statistic | ?{ $_.Name.Contains("UDP messages allocated") } | ft Name,Value
Run Code Online (Sandbox Code Playgroud)

我得到以下信息:

Name                           Value
----                           -----
UDP messages allocated         20550
UDP messages allocated         2596235
Run Code Online (Sandbox Code Playgroud)

两个同名的统计信息?和完全不同的价值观?什么?所以我开始调查底层的类,我看到这个类实际上有:

uint32 UdpAlloc;
uint32 TcpAlloc;
Run Code Online (Sandbox Code Playgroud)

这似乎很明显,上面的两个值很可能就是这两个值。但是 - 哪个是哪个?

这似乎是一个明显的假设,即较大的数字是 UDP,较小的数字是 TCP。但是,由于存在多个重复的统计数据,而不仅仅是这个,而且其中一些具有较低的值,可能是 TCP 或 UDP,这一事实使情况变得更加复杂。

有没有其他人以前见过这个并解决它?

Mar*_*son 2

这不是一个很好的答案,但我看到的行为在具有此计数器的所有 Windows Server 版本(包括 2016)之间是一致的。

最后,我只是将重复的计数器(我在这个项目过程中发现了更多)合并到一个计数器中,并决定不用担心它们是 TCP 还是 UDP 请求/响应。