How do you Compare objects?
Most people throw things at a problem and see what sticks.
Is this a true “solution” or a makeshift glue that can come unraveled at any given moment.
I think that when we compare we should understand what is needed and not needed, and really understand our options.
Understand the basics
This is an example of a variable with text defined. we want to look for the word Fruit.
PS C:\> $Apple = "Red Fruit, Green Fruit, Yellow Fruit" PS C:\> $Apple -match 'Fruit' True PS C:\> $Apple | where {$_ -match 'Fruit'} Red Fruit, Green Fruit, Yellow Fruit PS C:\> $Apple -like 'Fruit' False PS C:\> $Apple | where {$_ -like 'Fruit'}
So it looks like “Like” doesn’t like to be used in the way you cognitively expect.
PS C:\> $apple -like '*Fruit*' True PS C:\> $apple | where {$_ -like '*Fruit*'} Red Fruit, Green Fruit, Yellow Fruit
Well there is a trick to it. The trick is it has rules that govern how it looks at the compared objects and if it care about what comes before or after the string you are looking for.
I like to use match. some instances like the Active Directory module that comes with RSAT doesn’t allow it with the -filter parameter. you can pipe and filter instead.
Take a look below:
PS C:\> get-aduser -filter {givenname -like *Xajuan*}
VS the pipeline equivalent below:
PS C:\> get-aduser -filter * | where {$_.givenname -match
Either way stay true to your comfort zone and be sure to explore outside it, because at the end of the day, you got to get the job done, and nothing compares like that is complete.