请原谅,如果这很简单,请尝试使用谷歌搜索功能,这里有一些类似的问题,但在这种情况下没有对我有用的答案。
为了尽可能避免管道,我正在阅读使用 WQL queries 中的 -Query
参数提供的 Get-CimInstance
。在我看来,这是一个简单的查询(除非我遗漏了一些东西),它应该从 MACAddress、IPAddress 类中选择 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。
答案 0 :(得分:3)
[...] 希望学习新知识并更好地理解 WQL。
关于 WQL,您只需要在这里了解一件事[1]:
所以您最初使用 Where-Object
进行过滤的直觉是正确的 :)
过滤掉具有 NULL 值的实例的正确语法(假设您过滤的是标量类型的属性,这里以 MACAddress
属性为例)是:
SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress IS NOT NULL