如何在System Center Service Manager中高效筛选含[的事件用户评论
在System Center Service Manager中搜索包含方括号
[的用户评论 我需要在System Center Service Manager中搜索所有事件(Incidents)里包含方括号[的用户评论(UserComments),尝试了以下两种方法但均无效,猜测[是特殊字符但不知如何转义:
尝试过的无效方法
使用Criteria
$clUserComment = get-scsmclass System.WorkItem.TroubleTicket.UserCommentLog $criteria = New-Object "Microsoft.EnterpriseManagement.Common.EnterpriseManagementObjectCriteria" ` ("Comment like '%[%'", $clUserComment ) $comments = Get-SCSMObject -Criteria $criteria
使用Filter
$comments = Get-SCSMObject -Class $clUserComment -Filter "Comment -like '%[%'"
另外,我知道可以用Where-Object过滤,但这种方法需要拉取所有数据后再处理,在我的场景中效率太低:
$doitComments = $comments | Where-Object { $_.comment -match '\[' }
正确的解决方案
在SCSM的查询语法中,[属于LIKE语句的特殊通配符(用于定义字符范围,比如[a-z]),要匹配字面意义的[,需要用[[]进行转义,这样查询会直接在服务器端完成过滤,效率远高于客户端后处理。
修改后的Criteria写法
$clUserComment = get-scsmclass System.WorkItem.TroubleTicket.UserCommentLog $criteria = New-Object "Microsoft.EnterpriseManagement.Common.EnterpriseManagementObjectCriteria" ` ("Comment like '%[[]%'", $clUserComment ) $comments = Get-SCSMObject -Criteria $criteria
修改后的Filter写法
$clUserComment = get-scsmclass System.WorkItem.TroubleTicket.UserCommentLog $comments = Get-SCSMObject -Class $clUserComment -Filter "Comment -like '%[[]%'"
内容的提问来源于stack exchange,提问作者theq
相关产品推荐
相关产品推荐

