Фигурные скобки Powershell и переменные не анализируются

Я пытаюсь массово обновить большое количество списков рассылки с помощью powershell, я написал это до сих пор:

foreach ($Item in @(Import-Csv -Path "ranks.csv")) {
$Rank = $Item.Rank
Set-DynamicDistributionGroup -Identity "$Rank" -DisplayName "$Rank (NC)" -Name "$Rank (NC)" -RecipientFilter {(RecipientType -eq "UserMailbox") -and (Title -eq "$Rank") -and (Company -eq "Company")}
}

Команда Exchange верна, и все работает нормально, за исключением части (Title -eq «$Rank»), которая не анализирует переменную и просто отправляет ее следующим образом:

(RecipientType -eq 'UserMailbox') -and (Title -eq '$Rank') -and (Company -eq 'Company')

Я предполагаю, что это как-то связано с тем, что фильтр для RecipientFilter находится внутри фигурных скобок, но понятия не имею, как это предотвратить.

Любая помощь будет высоко оценена, так как я не хочу вручную обновлять несколько сотен списков!

См. также:  Как загрузить исходный код для определенного коммита в Bitbucket?
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. James C.

    Работает ли это, если вы создаете блок сценария фильтра, используя расширяемую строку?

    foreach ($Item in @(Import-Csv -Path "ranks.csv")) {
    $Rank = $Item.Rank
    $filter = [scriptblock]::create("(RecipientType -eq 'UserMailbox') -and (Title -eq '$Rank') -and (Company -eq 'Company')")
    Set-DynamicDistributionGroup -Identity "$Rank" -DisplayName "$Rank (NC)" -Name "$Rank (NC)" -RecipientFilter $filter
    }
    

    Это сработало отлично! Я отмечу функцию scriptblock, так как она очень полезна. person James C.; 26.03.2013

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: