Windows PowerShell -Like
Introduction to PowerShell's Examples of -Like
On this page I will explain how to filter data with PowerShell's -Like comparator.
One day I wanted to create a WMI script using the network adapter, but even using PowerShell I could not find the right properties, so I went back to basics and listed all the cmdlets containing 'Adapter'.
Topics for PowerShell -Like Operator
In a nutshell, if you are thinking, 'I am probably going to need a wildcard to find this item', then start with -Like. However, if you are pretty sure of most of the letters in the word that you are looking for, then you are better off experimenting with -Match.
Here is a more technical distinction: -Match is a regular expression, whereas -Like is just a wildcard comparison, a subset of -Match.
This example only lists those cmdlets that end with the letters 'adapter'.
# PowerShell -Like Operator
Note 1: Observe how Get-WmiObject uses the -List parameter.
Note 2: Most comparator scripts are introduced with Where-Object, followed by the pipeline construction: $_.
Windows Management Instrumentation (WMI) is one of the hidden treasures of Microsoft's operating systems. Fortunately, SolarWinds have created a Free WMI Monitor so that you can discover these gems of performance information, and thus improve your PowerShell scripts.
Take the guess work out of which WMI counters to use when scripting the operating system, Active Directory, or Exchange Server. Give this WMI monitor a try - it's free.
The problem with Example 1 is that I suspect there are more cmdlets containing the word Adapter, for instance 'adapter' maybe in the middle of the WMI class name.
# PowerShell example to demonstrate -Like
Note 3: Once again, realise the importance of the construction $_. Dollar, underscore. The dot means 'in this data stream'.
Note 4: Thanks to the second *, Example 2 should returns more cmdlets.
I like to be flexible with PowerShell's comparators, if the results are not as I anticipated then I may try an alternative such as -Match or -Contains.
# PowerShell example to check with -Match
Note 5: Actually this example should list the same WMI classes as Example 2, but in other scripts you may getter better results using -Match instead of -Like.
SolarWinds' Network Performance Monitor will help you discover what's happening on your network. This utility will also guide you through troubleshooting; the dashboard will indicate whether the root cause is a broken link, faulty equipment or resource overload.
What I like best is the way NPM suggests solutions to network problems. Its also has the ability to monitor the health of individual VMware virtual machines. If you are interested in troubleshooting, and creating network maps, then I recommend that you try NPM now.
Time for a recap: The simplest comparator is 'equals', and the way you code this in PowerShell with -eq (not =). However, in these examples, -eq would not be effective, because realistically you would have to know the answer before you could ask the question!
I would like to take this opportunity to examine other comparators. It is surprising how often the negative -NotLike operator produces a neat solution to a scripting problem. For instance, there are several WmiObjects beginning with CIM, one w
ay of excluding them would be to Not Like "CIM*".
Furthermore, by using multiple criteria in the filter, you can fine tune the output, to achieve my goal I have added '-And'. If for any reason -And fails remember this, when appending a second comparator the secret is to add another instance of the comparator ($_.name) after the -And.
# PowerShell example to list demonstrate -NotLike with -And
Note 6: My mission is always to get you started. Now it's over to you; experiment with different filters, substitute your ideas for "CIM", and "__". Perhaps best of all would be to combine -NotLike and -Like.
Note 7: I appended code to count the number of WMI classes, this helps to see which variation of my script returns the most items.
As usual with my scripts, the mission is to get you started. If
you want to know more about -Match, -Like and their relatives, then start
with PowerShell's own help thus:
These help files introduce a whole world of specific terms, for example, 'regular expression comparisons' and 'wildcard comparison'. Once you need and understand such extra information, then I have succeeded in my mission of introducing you to -Match and -Like.
So often we suffer from information overload. Working with PowerShell is no different, however it does supply three conditional operators to filter your information: -Match, -Like and -Contains. Each operator has different properties; with research, you can get just the filter you need, and thus filter the desired stream of information into your script's output.
If you like this page then please share it with your friends
See more Windows PowerShell flow control examples
Please email me if you have a better example script. Also please report any factual mistakes, grammatical errors or broken links, I will be happy to correct the fault.