Filter datasets using Where-Object cmdlet
I'm looking to filter datasets with a Where-Object
Командлет. Например, рассмотрим Notifications
column in the following cmdlet. It contains two values and I would like to filter it by Where-Object | {$_.Notifications -eq 'Operator1'}
, I also tried to filter using -in, -notin, -contains, -notcontains, -match, -notmatch, -like, -notlike
etc. But none of these have yielded any results so far. Любые указатели высоко ценятся.
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=
Also, The actual dataset for Notifications
column would look like
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
Спасибо!
Edit: Source of the cmdlet I'm using here is from https://dbatools.io/functions/get-dbaagentalert/
1 ответ
Попробуй это:
Get-DbaAgentAlert -SqlInstance ".\sql2016" |
Where-Object {$_.Notifications.OperatorName -eq "test1"}
Вот как я это сделал:
$results = Get-DbaAgentAlert -SqlInstance ".\sql2016"
$res.Notifications
Это возвращает что-то вроде:
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
свойство - это в основном другой объект, поэтому мы должны нацелить правильный элемент этого объекта