Je cherche à filtrer les ensembles de données avec une applet de commande Where-Object
. Par exemple, considérez la colonne Notifications
dans la cmdlet suivante. Il contient deux valeurs et je voudrais le filtrer par Where-Object | {$_.Notifications -eq 'Operator1'}
. J'ai également essayé de filtrer en utilisant -in, -notin, -contains, -notcontains, -match, -notmatch, -like, -notlike
etc. Mais aucun de ceux-ci n'a donné de résultats jusqu'à présent. Tout pointeur est très apprécié.Filtrer les ensembles de données à l'aide de la cmdlet Where-Object
PS>Get-DbaAgentAlert -SqlInstance 'Redacted'
ComputerName : Redacted
SqlInstance : Redacted
************ : ************
************ : ************
Notifications : {Operator1, Operator2}
************ : ************
************ : ************
fait un Get-Member
retours
PS>Get-DbaAgentAlert -SqlInstance 'Redacted' | Get-Member
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
OtherColumns ********** ***********
Notifications NoteProperty DataTable Notifications=
En outre, le jeu de données réelles pour Notifications
colonne ressembleraient
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
Merci!
Edit: Source de l'applet de commande J'utilise ici est de dbatools/Get-DbaAgentAlert
Avez-vous essayé '-contains'? Les notifications ressemblent à un tableau. – gvee
Oui, je l'ai fait (mentionné dans la question). Mais, il n'a pas retourné de résultats. J'aurais dû mettre la source de la commande que j'utilisais ici. C'est à partir de ce module - [dbatools] (https://dbatools.io/) – walt
Je ne suis pas très clair sur la partie du résultat que vous voulez filtrer. L'applet de commande renvoie des alertes, chacune contenant des notifications, chaque ligne contenant plusieurs valeurs. Si vous essayez de comparer une chaîne à un DataRow (une seule entrée à partir du DataTable Notifications), bien sûr, cela échouera. Vous devez prendre en compte les colums DataTable (comme "OperatorName" dans votre exemple) – TToni