Powershell循环通过.CSV创建通讯组列表?

hiz5n14c  于 2023-08-05  发布在  Shell
关注(0)|答案(2)|浏览(109)

我想修改下面的PowerShell cmdlet以创建包含其成员和别名的批量DL。
使用以下两个cmdlet:

我已经成功地创建了一个DL,当使用下面的代码片段执行时:

$paramNewDistributionGroup = @{
   Name                             = $_.DisplayName
   Alias                            = $_.Alias
   PrimarySmtpAddress               = $_.PrimarySmtpAddress
   DisplayName                      = $_.DisplayName
   RequireSenderAuthenticationEnabled = $False
   Members                          = $_.Members
}

New-DistributionGroup @paramNewDistributionGroup

$paramSetDistributionGroup = @{
   Identity       = $_.Alias
   EmailAddresses = @{ Add = $_.SecondarySMTPAddress }
}

Set-DistributionGroup @paramSetDistributionGroup

字符串
如何修改上面的脚本,使其接受.CSV文件,如下所示:
x1c 0d1x的数据
使用下面来自@mklement的建议代码,由于以下列上的多值条目,它会抛出错误:

SecondarySMTPAddress列:

写入错误消息:无法处理参数“EmailAddresses”的参数转换。无法将值“System.Collections.Generic.Dictionary`2[System.String,System.Object]”转换为类型“Microsoft.Exchange.Data.ProxyAddressCollection”。错误:“地址'Execs@domain.com;boss@domain.com'无效:地址'Execs@domain.com;' boss@domain.com '不是有效的统一消息地址,因此必须指定前缀。”

成员列:

写入错误消息:Ex94914C| Microsoft.Exchange.Configuration.Tasks.ManagementObjectNotFoundException|找不到对象“切拉Cat; Maria Aya; Dio O'meara”.请确保拼写正确或指定其他对象。

kqlmhetl

kqlmhetl1#

假设这是本地Exchange?

$DLs = Import-Csv -Path <filepath>
$DLS | % {
    $paramNewDistributionGroup = @{
       Name                             = $_.DisplayName
       Alias                            = $_.Alias
       PrimarySmtpAddress               = $_.PrimarySmtpAddress
       DisplayName                      = $_.DisplayName
       RequireSenderAuthenticationEnabled = $False
       Members                          = $_.Members
    }

    New-DistributionGroup @paramNewDistributionGroup

    $paramSetDistributionGroup = @{
       Identity       = $_.Alias
       EmailAddresses = @{ Add = $_.SecondarySMTPAddress }
    }

    Set-DistributionGroup @paramSetDistributionGroup
}

字符串
我还将假设CSV文件中的成员与以下AD属性之一匹配:

  • 姓名、名称
  • 别名
  • 可分辨名称(DN)
  • Canonical DN
  • 电子邮件地址
  • 用户识别码
iqih9akk

iqih9akk2#

您能否修改已回答的脚本,使成员的列有一个for each循环?我得到相同的错误“Write-ErrorMessage:Ex94914C| Microsoft.Exchange.Configuration.Tasks.ManagementObjectNotFoundException|找不到对象“切拉Cat; Maria Aya; Dio O'meara”.请确保拼写正确或指定其他对象。”
这是因为我在一个列行中有多个值,powershell将其视为一个值。

相关问题