1

我正在尝试使用 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 的过滤器位于花括号内有关,但不知道如何阻止这种情况发生。

任何帮助将不胜感激,因为我不想手动更新数百个列表!

4

1 回答 1

2

如果您使用可扩展字符串创建过滤器脚本块,它是否有效?

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
}
于 2013-03-25T17:39:16.233 回答