情况如下:
我们有一份包含大约 1,000 名联系人(我们法院服务地区的律师)的名单,其中包含姓名和电子邮件地址。有人要求我创建一个电子邮件分发列表,该列表可用于向该列表中的所有外部用户发送电子邮件。我看过很多文章,其中使用 Exchange 管理 Shell 和 Import-csv 命令通过 ForEach-Object 传输到 New-MailContact 来设置联系人。
但是,Exchange Management Shell 没什么帮助,而且不起作用。
我认为我需要做的是:
1) 使用 Exchange 管理控制台设置新的通讯组。假设这个新的通讯组(出现在收件人配置下的通讯组列表中)名为“FloridaBar”。
2)确保我有一个包含我想要导入的信息的 csv 文件。
3)打开Exchange Management Shell,输入以下命令:
Import-csv C:\filename.csv | ForEach-Object { New-MailContact -Name
$“名称列名称”-外部电子邮件地址 $“电子邮件地址列”-org FloridaBar
现在,在活动目录中创建 1,000 多个联系人 - 我认为这应该不是问题。
我的“-org”参数是否错误?我需要拼出完整的组织单位名称 (my.domain.name/Users/FloridaBar) 吗?
有没有更好的方法呢?
提前致谢
肯
答案1
-org 开关是放置新联系人的组织单位 (OrganizationalUnit),而不是组的名称。
您需要类似以下内容(将其全部输入在一行中 - 我将其拆分仅仅是为了易于阅读)。
Import-CSV -Path D:\contacts.csv |
ForEach-Object {
New-MailContact -Name $_.Name -ExternalEmailAddress $_.ExternalEmailAddress
-OrganizationalUnit "cn=Users,dc=Adatum,dc=com";
Add-DistributionGroupMember -Identity "FloridaBar" -Member $_.Name }
在这种情况下,我的 contacts.csv 有两列 - Name 和 ExternalEmailAddress。
导入之前必须创建分发组 FloridaBar。
注意:如果要多次使用,那么我会花一些精力进行错误处理;可能通过编写循环遍历集合的 ps1 脚本并将错误数据(例如 AD 中已经存在的名称)写入 errors.csv 文件。
答案2
我刚刚发现一些可能对你有帮助的东西从这里。
场景:创建通讯组并将 CSV 文件指定的邮箱添加到通讯组
Shell 单行命令:
下面的一行代码根据 Avalanche.csv 文件为所有团队成员创建一个分发组,其中包含 NHL Avalanche 团队名单信息,包括以下列:Pos、No、Player、Age、Ht、Wt、Born、Exp、Birth City
new-distributiongroup -alias avalanche -name "Avalanche Team" -type distribution -org users -SamAccountName AvalancheTeam import-csv Avalanche.csv | foreach {add-distributiongroupmember avalanche -member "avalanche$($_.No)"}