我可以使用以下WMI查询来确定我的计算机可能正在使用的任何DNS服务器:
SELECT DNSServerSearchOrder
FROM Win32_NetworkAdapterConfiguration
但是,我写的忽略空条目的以下查询无效,我不知道原因:
SELECT DNSServerSearchOrder
FROM Win32_NetworkAdapterConfiguration
WHERE DNSServerSearchOrder!=null
有没有办法过滤掉空条目?
答案 0 :(得分:7)
WQL语言supports !=
和IS [NOT] NULL
语法,问题是您选择的属性DNSServerSearchOrder
是一个数组,you can't use an array property in a WQL Where sentence。因此,解决方法是在where条件中使用Win32_NetworkAdapterConfiguration
WMI类的另一个属性。
答案 1 :(得分:1)
请使用此
WHERE IPEnabled=True
答案 2 :(得分:0)
这是一篇较旧的文章,但我今天需要Powershell自己提供此信息,以列出用作系统上DNS服务器的IP地址:
"columnDefs": [
{
"targets": 3,
"render": function (data, type, row, meta) {
if (type === 'display') {
if (data === "True") {
return "<input disabled='disabled' class='check-box' type='checkbox' checked='checked'>";
}
else return "<input disabled='disabled' class='check-box' type='checkbox'>";
}
return data;
}
}]
这将生成一个简单的IP地址数组,可以通过发送到变量或通过管道传递到另一个命令来在Powershell中进一步使用该地址。
答案 3 :(得分:-1)
你是否正在寻找这个:
SELECT DNSServerSearchOrder
FROM Win32_NetworkAdapterConfiguration
WHERE DNSServerSearchOrder IS NOT NULL