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

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

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

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

我得到以下内容:

 Name Value ---- ----- UDP messages allocated 20550 UDP messages allocated 2596235 

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

 uint32 UdpAlloc; uint32 TcpAlloc; 

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

这似乎是一个明显的假设,更大的数字是UDP,更小的数字是TCP。 但是由于有几个重复的统计信息,而不仅仅是这个统计信息,而且其中一些统计信息的值较低,可能是TCP或UDP,这样就更加复杂了。

有没有其他人看过这个,并解决它?

这不是一个很好的答案,但是我看到的行为在所有版本的Windows Server(包括2016)都是一致的。

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