在 powershell 中格式化 WQL 查询

Formatting WQL Query in powershell

我正在尝试使用以下代码在 powershell 中格式化 WQL 查询以仅查找有线以太网适配器

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "Name LIKE '%Ethernet%' OR '%Gigabit%'" -CN "." | Out-Host

但是我对 SQL/WQL 了解不多,我不确定我是否在 PS 中正确地格式化了 OR 语句,如果有人能指出我正确的方向,我将不胜感激。

谢谢!

Win32_NetworkAdapterConfiguration 没有 Name 属性.

关于您的问题,您可以通过这种方式使用过滤器,在示例中,我使用有效的 属性,例如 ServiceName

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "ServiceName like '%msloop%' or ServiceName like '%tunnel%'"

此外,您不必为本地计算机提供 ComputerName 参数,这是默认值

这是关于 WQL operators and the WQL WHERE clause

的文档

根据文档,您的方法是正确的,但您的语法不正确。如果您使用的是 PSv3+,我建议您使用 CIM cmdlet,因为 WMI cmdlet 在技术上已被弃用。

Get-CimInstance -Query 'SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Name LIKE "%ethernet%" OR Name LIKE "%gigabit%"'

在你的例子中:

Get-WmiObject -Class 'Win32_NetworkAdapterConfiguration' -Filter 'Name LIKE "%ethernet%" OR Name LIKE "%gigabit%"' -ComputerName '.'

此外,@Avshalom 是正确的,因为您的字段是错误的。您想查看 'Description'.

Get-WmiObject -Filter 'Description LIKE "%ethernet%" OR Description LIKE "%gigabit%"' -Class 'Win32_NetworkAdapterConfiguration' -ComputerName '.'