【问题标题】:Why is my WQL Query not accepting my "IS NOT NULL" argument?为什么我的 WQL 查询不接受我的“IS NOT NULL”参数?
【发布时间】:2021-09-08 05:57:06
【问题描述】:

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

为了尽可能避免管道,我正在阅读使用Get-CimInstance 中的-Query 参数提供的WQL queries。在我看来,这是一个简单的查询(除非我遗漏了什么),它应该从 MACAddressIPAddress 类中选择 em>Win32_NetworkAdapterConfiguration,来自 IPAddress 属性不为空的可用实例。

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-Object 轻松过滤它,但希望学习新知识并更好地理解 WQL。

【问题讨论】:

    标签: powershell wql powershell-5.1


    【解决方案1】:

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

    关于 WQL,您真正需要了解的只有一件事[1]

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

    因此,您最初使用 Where-Object 进行过滤的本能是正确的 :)

    过滤出具有 NULL 值的实例的正确语法是:

    SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress IS NOT NULL
    

    【讨论】:

      猜你喜欢
      • 2022-11-21
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-30
      相关资源
      最近更新 更多