2

请原谅,如果这很简单,尝试过谷歌,这里的搜索功能有一些类似的问题,只是在这种情况下没有对我有用的答案。

为了尽量避免使用管道,我正在阅读使用参数 in提供的WQL 查询。在我看来,这是一个简单的查询(除非我遗漏了一些东西),它应该从IPAddress的属性不为空的可用实例中从Win32_NetworkAdapterConfiguration类中选择MACAddressIPAddress 。-QueryGet-CimInstance

Get-CimInstance -Query "SELECT MACAddress, IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPAddress != NULL" 

起初,我认为这是我的错误,因为抛出异常,读取一条消息说查询无效,但这有效:

Get-CimInstance -Query "SELECT MACAddress, IPAddress FROM Win32_NetworkAdapterConfiguration WHERE MACAddress != NULL" 

# or - using -Filter

Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration -Filter "MACAddress != NULL"

我可以得到一些指导吗?也许分享这个问题的替代解决方案?


IPAddress是一个有效的属性,我可以使用Where-Objectbut 轻松过滤它,希望学习新的东西并更好地理解 WQL。

4

1 回答 1

3

[...] 希望学习新知识并更好地理解 WQL。

关于 WQL,您实际上只需要了解一件事[ 1 ]

WQL 不支持对数组值进行过滤

所以你最初的过滤直觉Where-Object是正确的:)

过滤出具有 NULL 值的实例的正确语法(假设您正在过滤标量类型的属性,这里使用该MACAddress属性举例说明)将是:

SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress IS NOT NULL
于 2021-06-24T18:35:51.587 回答