使用 Where-Object cmdlet 过滤数据集

Filter datasets using Where-Object cmdlet

我希望使用 Where-Object cmdlet 过滤数据集。例如,请考虑以下 cmdlet 中的 Notifications 列。它包含两个值,我想按 Where-Object | {$_.Notifications -eq 'Operator1'} 过滤它。我还尝试使用 -in, -notin, -contains, -notcontains, -match, -notmatch, -like, -notlike 等进行过滤。但是到目前为止,其中 none 已经产生了任何结果。任何指针都非常感谢。

PS>Get-DbaAgentAlert -SqlInstance 'Redacted'

ComputerName          : Redacted
SqlInstance           : Redacted
************          : ************
************          : ************
Notifications         : {Operator1, Operator2}
************          : ************
************          : ************

正在做 Get-Member returns

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

试试这个:

Get-DbaAgentAlert -SqlInstance ".\sql2016" |
Where-Object {$_.Notifications.OperatorName -eq "test1"}

我是这样计算的:

$results = Get-DbaAgentAlert -SqlInstance ".\sql2016"
$res.Notifications

这 returns 类似于:

OperatorId   : 1
OperatorName : test1
UseEmail     : True
UsePager     : False
UseNetSend   : False
HasEmail     : False
HasPager     : False
HasNetSend   : False

OperatorId   : 2
OperatorName : test2
UseEmail     : True
UsePager     : False
UseNetSend   : False
HasEmail     : False
HasPager     : False
HasNetSend   : False

...Notifications 属性 基本上是另一个对象,因此我们必须定位 that 对象

的正确元素