where -in wildcards

what’s a better way to say

| where {$.property -like “this” -or $.property -like “that” -or $_.property -like "theOther}

is “where property -in (…)” supposed to work with wildcards?

-in does not work with wildcards, no, nor does it do what I think you’re thinking. -in is a logical opposite of -contains, and it checks for an object’s membership in a collection. It isn’t like the T-SQL “IN” clause. There is no syntax for “-in (…)” in PowerShell.

You could do this:

$possibles = @('this','that','theOther')
where {$_.property -in $possibles}

I think I need the wildcards. The value of property is going to be “something this etc” or “something that etc”

Personally, I’d use the -match operator here, since regex has an “or” operator built-in:

$something | Where { $_.property -match 'this|that|theother' }

thanks Dave, match seems to be working.

my script is looking for expiring certificates from the Local Machine’s Personal store, Trusted Root CA store, and Intermediate CA store, but I really only care about certificates that were issued by certain (internal) entities-- mainly because there are some really old, expired trusted root certificates that I think maybe the OS depends on, so I don’t want to delete them. but the format of the certificate “subject” (aka the ‘property’ in my original question) is not consistent. most of the time it’s “CN=Some CA,OU=Some Department,O=That Company”, etc., but occasionally it’s an email address someguy@theother.com.