能否在$_.member属性上设置条件断点?设置后未触发如何解决?
PowerShell Studio
$_属性条件断点不命中排查方案 - 首先修正条件断点表达式写法
PowerShell Studio的条件断点仅需要填写返回布尔值的逻辑表达式,不需要包裹脚本块大括号,也不需要手动写if判断和break语句,你写的{if ($_.LoginName -match 'auser') {break}}是错误格式,正确的表达式直接写$_.LoginName -match 'auser'即可,调试器会自动在表达式返回$true时触发断点。 - 确认
$_作用域有效性
仅当断点设置在管道上下文、ForEach-Object脚本块等$_被正常赋值的位置时,$_才会有有效值。你可以在断点位置临时添加测试代码:Write-Host "当前LoginName值:$($_.LoginName)",运行后确认控制台是否输出了匹配auser的记录,排除断点位置错误导致$_为$null的问题。 - 排查匹配规则问题
-match为正则匹配,默认不区分大小写,你可以先替换为精确匹配测试是否能命中:$_.LoginName.Trim() -eq '目标完整auser值',排除目标值前后存在空格、正则规则匹配偏差、大小写设置异常的问题。 - 确认属性名拼写正确性
数据库返回的记录属性名可能和你写的LoginName存在拼写差异,你可以在断点位置添加临时代码:$_ | Get-Member -MemberType NoteProperty,运行后查看输出的属性列表,确认存在LoginName属性且取值正确。 - 验证断点配置是否正确
右键点击你设置的断点,选择「条件」选项,确认你是在条件输入框填写的表达式,没有误填到动作脚本输入框中,同时确认断点没有被禁用、断点所在的代码块确实会被执行。
内容的提问来源于stack exchange,提问作者lit
相关产品推荐
相关产品推荐

