5

我可以使用以下 WMI 查询来确定我的机器可能正在使用的任何 DNS 服务器:

SELECT DNSServerSearchOrder
FROM Win32_NetworkAdapterConfiguration

但是,我为忽略空条目而编写的以下查询无效,我不知道为什么:

SELECT DNSServerSearchOrder
FROM Win32_NetworkAdapterConfiguration
WHERE DNSServerSearchOrder!=null

有没有办法过滤掉空条目?

4

4 回答 4

8

WQL 语言支持 !=IS [NOT] NULL语法,问题是你选择的属性DNSServerSearchOrder是一个数组,而你不能在 WQL Where 语句中使用数组属性。所以解决方法是Win32_NetworkAdapterConfiguration在 where 条件下使用 WMI 类的另一个属性。

于 2013-05-29T03:21:41.613 回答
1

就用这个

WHERE IPEnabled=True
于 2015-02-25T22:48:45.903 回答
1

这是一篇较早的帖子,但我今天需要这些信息,从 Powershell 列出系统上用作 DNS 服务器的 IP 地址:

Get-WmiObject -Namespace root\cimv2 -Query "Select dnsserversearchorder from win32_networkadapterconfiguration" | where {$_.DNSServerSEarchOrder -ne $null} | select -ExpandProperty DNSServerSearchOrder

这会产生一个简单的 IP 地址数组,可以通过发送到变量或通过管道传递到另一个命令在 Powershell 中进一步使用。

于 2018-08-30T18:40:20.053 回答
-1

您是否正在寻找这个:

SELECT DNSServerSearchOrder
FROM Win32_NetworkAdapterConfiguration
WHERE DNSServerSearchOrder IS NOT NULL
于 2013-05-29T02:12:11.067 回答