-notlike
не поддерживает коллекции с правой стороны (RHS). Аналогичный подход заключается в использовании -notmatch
, который является строкой регулярного выражения:
$ServerList = Get-ADComputer -Filter * |
Where { $_.DistinguishedName -like "*Computers*" -and $_.DistinguishedName -notmatch 'server1|Server2'} |
Select-Object Name
Если вы хотите, чтобы имена ваших серверов были первыми в списке, вы можете создать из него строку регулярного выражения.
$serverdown = 'server1','server2'
$regex = $serverdown -join '|'
$ServerList = Get-ADComputer -Filter * |
Where { $_.DistinguishedName -like "*Computers*" -and $_.DistinguishedName -notmatch $regex} |
Select-Object Name
Если вы не привязываете свои строки регулярного выражения, он ищет совпадение регулярного выражения в любом месте целевой строки (фактически имея окружающие подстановочные знаки). |
- это альтернатива (эффективный OR
).
Существуют и другие операторы, поддерживающие коллекции, например -contains
, -in
, -notin
и -notcontains
. Однако они должны точно совпадать и не могут использовать подстановочные знаки.