我正在寻找使用Where-Object
cmdlet 过滤数据集。例如,考虑Notifications
以下 cmdlet 中的列。它包含两个值,我想用Where-Object | {$_.Notifications -eq 'Operator1'}
. 我也尝试使用-in, -notin, -contains, -notcontains, -match, -notmatch, -like, -notlike
等进行过滤。但到目前为止,这些都没有产生任何结果。任何指针都受到高度赞赏。
PS>Get-DbaAgentAlert -SqlInstance 'Redacted'
ComputerName : Redacted
SqlInstance : Redacted
************ : ************
************ : ************
Notifications : {Operator1, Operator2}
************ : ************
************ : ************
做Get-Member
退货
PS>Get-DbaAgentAlert -SqlInstance 'Redacted' | Get-Member
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
OtherColumns ********** ***********
Notifications NoteProperty DataTable Notifications=
此外,Notifications
列的实际数据集看起来像
PS>$alerts.Notifications | Select -First 2 | Format-Table
OperatorId OperatorName UseEmail UsePager UseNetSend HasEmail HasPager HasNetSend
---------- ------------ -------- -------- ---------- -------- -------- ----------
1 Operator1 True False False True False False
2 Operator2 True False False True False False
谢谢!
编辑:我在这里使用的 cmdlet 的来源来自dbatools/Get-DbaAgentAlert