Я хочу фильтровать наборы данных с помощью командлета Where-Object
. Например, рассмотрим столбец Notifications
в следующем командлете. Он содержит два значения, и я хотел бы отфильтровать его по 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
Спасибо!
Редактировать: источник командлета, который я здесь использую, взят из dbatools/Get. -DbaAgentAlert
-contains
? Уведомления выглядят как массив. - person gvee   schedule 16.03.2017