Powershell Select-String -pattern -notMatch
Solution 1
Like this?
$LocalAdmins | select-string -Pattern 'Administrator|daemon' -NotMatch | select -expa line
-pattern
accepts REGEX
. You can use the |
( or regex operator ) to add others words to fit your needs.
Solution 2
Assuming that $LocalAdmins
is an array you could do this:
$exclude = 'Administrator', 'Domain-Administrator', 'daemon'
$LocalAdmins | Where-Object { $exclude -notcontains $_ }
Related videos on Youtube
Phoneutria
Updated on July 09, 2022Comments
-
Phoneutria almost 2 years
I have lines -
echo $LocalAdmins Administrator Domain-Administrator daemon SomeUser
Line 1-3 should be same although there could be situation where Domain-Administrator doesn't exist so simply counting lines won't help because User might hide in 3rd line.
Line 4 string changes, there could be more than 4 lines either as well as no Line 4 at all.
I'm not sure yet if lines change their position or not.
I need to get string that is -notMatch "Administrator", "Domain-Administrator", "daemon". I.e., I need user names that are in this list.
Is there a way to use more than one -notMatch with -and or ()? Currently I'm stuck with code that use only one -notMatch. And I can't use -Match because there could be 2+ users in the list.
$LocalAdmins | Select-String -pattern "Administrator" -notMatch