Это прекрасно работает:
Get-Mailbox -Filter {DisplayName -like "Axel*"}
Теперь я хочу снова использовать это в функции. К сожалению, эта конструкция ужасно терпит неудачу:
> $name = "Axel*"
> Get-Mailbox -Filter {DisplayName -like $name}
Я не бог PowerShell, но я думаю (!), Что я понял, что замыкание (я думаю, {Displayname -eq ...}
- это единица) оценивается при выполнении, которое равно в Get-Mailbox
командлет, в котором переменная больше не доступна из внешней области.
Итак, мой вопрос - как мне это сделать?
Я явно не хочу сделать это, потому что это примерно в 50 раз медленнее:
Get-Mailbox | Where-Object DisplayName -like $name
Может кто-нибудь помочь мне здесь?
Я нашел a пару из статей, которые подробно описываются, и все они, похоже, сводятся к: "Просто используйте .GetNewClosure()
". Это не сработало для меня:
> $dname = "Axel*"
> Get-Mailbox -Filter {DisplayName -like $dname}.GetNewClosure()
[...still no effect...]