sql - Powershell WQL 查询 (SCCM) 如何在两个 WHERE 上进行过滤?
问题描述
作为通过 Powershell 从 SCCM 进行 WQL 查询的新手,到目前为止,我已经完成了这项工作:
[string]$poste_entre = Read-Host "Poste"
[string]$poste_entre = $poste_entre.Insert(0,"%")
[string]$poste_entre += "%"
""
[string[]]$postes=(Get-WmiObject -ComputerName SSigcimpr001 -Namespace "root\sms\site_pr1" -Query ("select SMS_R_System.Name from SMS_R_System WHERE SMS_R_System.Name like '" + $poste_entre + "' ")).Name
$postes
在这种情况下,我输入一个部分名称(0293),并在字符串(通配符)的开头和结尾添加 %,查询返回我正确搜索的两台计算机:
Poste: 0293
A0293
P0293
但是,计算机“A0293”是一台 INACTIVE 计算机,我希望查询不返回它,因此它只返回 ACTIVE 计算机。
我以为我可以像这样进行查询:
[string[]]$postes=(Get-WmiObject -ComputerName SSigcimpr001 -Namespace "root\sms\site_pr1" -Query ("select SMS_R_System.Name from SMS_R_System WHERE SMS_R_System.Name like '" + $poste_entre + "' AND SMS_R_System.Active = '1' ")).Name
但它不起作用,它仍然返回两台计算机,但其中一台显然处于非活动状态?为什么查询不只返回活动计算机?
解决方案
的可能值为SMS_R_System.Active
或。0
1
[string[]]$postes=(Get-WmiObject -ComputerName SSigcimpr001 -Namespace "root\sms\site_pr1" -Query ("select SMS_R_System.Name from SMS_R_System WHERE SMS_R_System.Name like '" + $poste_entre + "' AND SMS_R_System.Active = 1")).Name
顺便说一句,从技术上讲,这些是WQL 查询。语法与 SQL 类似,但语法上的细微差别在 WQL 中更具限制性。
推荐阅读
- time - 将参数传递给 days.ago (Rails 5)
- javascript - 可以将一个对象的原型更改为另一个对象吗?
- regex - 没有特殊字符的正则表达式结果(不包括一些字符)
- css - html中背景的不同样式
- angular - 输入“承诺”
' 不可分配给类型 'Observable ' - excel - 如何在每个执行任务后突出显示每一行
- php - 为什么只有 c1 变量(c2、c3、c4 和 c5)获取数据
- ruby-on-rails - 在 Rails 操作中使用 Thread.new
- javascript - 使用箭头函数与函数表达式创建 Javascript 对象
- sql - 如何提高 SQL Server 读取速度?