Powershell Select-String -pattern -notMatch
У меня есть строки -
echo $LocalAdmins
Administrator
Domain-Administrator
daemon
SomeUser
-
Строка 1-3 должна быть такой же, хотя может быть ситуация, когда
Домен-Администратор не существует, поэтому просто подсчет строк не будет
потому что пользователь может скрыться в третьей строке.
-
Строка строки 4 изменяется, может быть больше 4 строк либо как
так же как и без линии 4.
-
Я еще не уверен, что линии меняют свое положение или нет.
Мне нужно получить строку, которая является -notMatch "Administrator", "Domain-Administrator", "daemon". I.e. Мне нужны имена пользователей, которые находятся в этом списке.
Есть ли способ использовать более одного -nMatch с -and и()? В настоящее время я застрял в коде, который использует только один -natchMatch. И я не могу использовать -Match, потому что в списке могут быть 2+ пользователя.
$LocalAdmins | Select-String -pattern "Administrator" -notMatch
Ответы
Ответ 1
Как это?
$LocalAdmins | select-string -Pattern 'Administrator|daemon' -NotMatch | select -expa line
-pattern
принимает REGEX
. Вы можете использовать оператор |
(или оператор регулярных выражений), чтобы добавить другие слова в соответствии с вашими потребностями.
Ответ 2
Предполагая, что $LocalAdmins
- это массив, вы можете сделать это:
$exclude = 'Administrator', 'Domain-Administrator', 'daemon'
$LocalAdmins | Where-Object { $exclude -notcontains $_ }