当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] New-DistributionGroup:不受尊重的 PowerShell Cmdlet

作者:精品下载站 日期:2024-12-14 04:02:17 浏览:14 分类:玩电脑

New-DistributionGroup:不受尊重的 PowerShell Cmdlet


原始 Cmdlet

New-DistributionGroup 是随 Exchange Server 2007 引入的原始 cmdlet 之一,Exchange Server 2007 是第一个采用 PowerShell 的主要 Microsoft 产品。该 cmdlet 仍然非常有用,但由于重点关注 Microsoft 365 组,因此它在 Exchange Online 中受到的重视较少。自 2014 年推出 Office 365 组以来,微软一直试图让客户相信 Microsoft 365 组的神奇之处。这些组后来成为 Outlook 组(甚至 Outlook 中的组),并定位为通讯组列表的替代品。

当然,通讯组列表 (DL) 是这些对象的旧名称。 Microsoft 将它们称为通讯组,有时称为通讯组列表。我使用旧名称是为了明确表示我们不是在讨论 Microsoft 365 中发现的其他类型的组之一。

没有迁移工具

Microsoft 365 组推出近七年后,Microsoft 尚未提供良好的迁移工具:

  • 将本地创建的通讯组列表移至 Exchange Online。
  • 将基于云的通讯组列表转换为 Microsoft 365 组。将通讯组列表迁移到旧 EAC 中的 Microsoft 365 组的转换工具非常有限。

迁移的复杂性包括枚举嵌套列表成员以及处理一些列表成员托管在本地、一些列表成员在线的情况。结果是,组织需要手工制作迁移工具来将它们迁移到线上,通常基于 Tim McMichael 的 DL 迁移脚本等实用程序。

尽管 Microsoft 365 组在此期间获得了一些有用的升级,例如对发送为代表发送权限的支持,但毫无疑问,对 Microsoft 365 组的关注坚定地致力于为 Teams 等应用程序提供会员资格和身份服务。

尽管有警告但仍创建新的 DL

如今,经过改进的全新 Exchange 管理中心 (EAC) 温和地责备了那些创建新通讯组列表的人(图 1)。

[玩转系统] New-DistributionGroup:不受尊重的 PowerShell Cmdlet

旧 EAC 中也进行了同样的操作。如果您鲁莽地运行 New-DistributionGroup cmdlet(在连接到 Exchange Online 管理 PowerShell 模块后),系统会告诉您:

New! Microsoft 365 Groups are the next generation of distribution lists.
Groups give teams shared tools for collaborating using email, files, a calendar, and more.
You can start right away using the New-UnifiedGroup cmdlet.

尽管有这些抱怨,人们仍然创建通讯组列表。它们非常适合向大量受众(最多 100,000 个收件人)发送电子邮件,并且列表的成员资格可以包括多种类型的启用邮件的对象,包括:

  • 用户邮箱。
  • 共享邮箱。
  • 启用邮件的公共文件夹。
  • 其他通讯组列表,包括动态通讯组列表。
  • 邮件联系人。
  • 邮件用户。
  • 团队频道(使用为频道创建的特殊电子邮件地址)。

您甚至可以将 Microsoft 365 组添加到通讯组的成员身份(但仅限使用 PowerShell)。相比之下,Microsoft 365 组仅支持用户邮箱和来宾帐户作为成员。

通讯组列表的持续有用性体现在 Teams 组策略分配等功能以及为合规性策略选择用户(例如 DLP)方面。简而言之,通讯组列表不会很快消失。

运行新的分发组

所有这些都让我想到了 New-DistributionGroup cmdlet。尽管通过管理中心创建新的通讯组列表是很自然的事情(即使有烦人的麻烦),但这个 cmdlet 简单易用,因此这是我创建新 DL 的首选方式。事实上,旧 EAC 在创建新 DL 时会调用 cmdlet,而新 EAC 使用 Microsoft Graph API。以下是创建简单通讯组列表的方法:

New-DistributionGroup -Name "Practical 365 Authors" -Alias P365.Authors -PrimarySmtpAddress [email protected] -DisplayName "Practical 365 Authors (DL)" -RequireSenderAuthenticationEnabled:$False -IgnoreNamingPolicy

此代码创建一个新的通讯组列表并且:

  • 设置别名、主 SMTP 地址和显示名称。
  • 允许外部用户向列表发送消息(RequireSenderAuthenticationEnabled 为 False)。
  • 绕过通讯组列表的命名策略,以便新列表获得指定的显示名称。

设置新通讯组时,可以通过在 Members 参数中传递以逗号分隔的电子邮件地址列表以及在 ManagedBy 参数中传递该列表的管理员来添加成员。如果失败,Set-DistributionGroup cmdlet 将添加所有者:

Set-DistributionGroup -Identity P365.Authors -ManagedBy Tony.Redmond

其他几个设置控制 DL 的使用方式。例如,您可以设置要审核的组,这意味着发送到 DL 的任何消息在传送之前都会先由审核者检查。对于敏感的DL,您可以设置只有特定的个人才能向DL发送消息。例如,此命令打开审核并将 Tony Redmond 设置为审核人。它还对 DL 设置限制,以便 Exchange 仅接受来自 DL 成员的邮件。

Set-DistributionGroup -Identity P365.Authors -ModerationEnabled:$true -ModeratedBy Tony.Redmond -AcceptMessagesOnlyFromDLMembers:$True

最近的一项更改允许组织阻止以密件抄送收件人身份向 DL 发送邮件的人。这对于用于公司范围讨论的大型 DL 以及人们使用收件箱规则来过滤发送到 DL 的消息尤其有用。如果 DL 是密件抄送收件人,则这些规则将不起作用,因为规则无法过滤密件抄送。

Set-DistributionGroup -Identity "Message Board Posting" -BccBlocked $True

最后,您可以向 DL 授予 Send As 权限,以允许用户从 DL 发送消息:

Add-RecipientPermission -Identity P365.Authors -Trustee Tony.Redmond -AccessRights SendAs

将成员添加到新的分发组

没有成员,通讯组列表就没有任何用处。您可以使用Add-DistributionGroupMember添加单个DL成员,或使用Update-DistributionGroupMember在一次操作中更新完整的成员资格。请注意,引用的成员必须是 Exchange 目录中启用邮件的收件人。换句话说,如果计划将外部用户添加到 DL,请先为他们创建邮件联系人或 Azure AD 来宾帐户。

Add-DistributionGroupMember -Identity P365.Authors -Member Jeff.Guillet
$Members = "Jeff.Guillet", "Tony.Redmond", "Paul.Robichaux"
Update-DistributionGroupMember -Identity P365.Authors -Members $Members -Confirm:$False

凭借其会员资格,我们的新 DL 已全面投入使用,只需将电子邮件发送到其 SMTP 地址即可立即使用。一天之内,Exchange 会将新的 DL 添加到脱机通讯簿 (OAB),并且它将显示在 Outlook GAL 中。

动态通讯组列表

动态 DL 是一种通过解析目录查询来计算其成员资格的 DL。动态 DL 的一大优点是它们可以与任何 Exchange Online 许可证一起使用。动态 Microsoft 365 组需要 Azure AD Premium P1 许可证。

动态 DL 依赖收件人筛选器来查找目录中的成员。自定义收件人过滤器可能非常复杂(但效果很好),因此为了更轻松地构建动态 DL,Microsoft 使用预装过滤器。这些是基于通用标准的预构建过滤器,例如在某个国家或城市工作的每个人,或者拥有邮箱的每个人。如果您通过 EAC 创建动态通讯组列表,它将使用预先设定的过滤器。只有使用 PowerShell 创建的动态通讯组列表才能使用自定义筛选器。

这是一个例子。此代码使用过滤器创建动态通讯组列表,该过滤器检查目录中是否存在 CustomAttribute9 值设置为 Editor 的邮箱。

New-DynamicDistributionGroup -Name P365Editors -DisplayName "Practical 365 Editors DL" -ConditionalCustomAttribute9 Editor -IncludedRecipients MailboxUsers -PrimarySmtpAddress [email protected] -Alias P365.Editors

我并不是说为动态通讯组列表创建复杂的筛选器很容易,但这并不比创建动态 Microsoft 365 组使用的等效筛选器困难。而且由于 DDL 是免费的,因此它们是一个很好的工具。

也许是时候再次考虑 DL 了

Microsoft 365 组是 Microsoft 365 生态系统的重要组成部分。然而,自电子邮件出现以来,通讯组列表就一直是电子邮件的一部分。它们现在比以往任何时候都更有用。当您需要跨 SharePoint、Teams、电子邮件和 Planner 进行协作的基础时,无论如何,请继续创建 Microsoft 365 组,但如果您的需求以电子邮件为重点,则通讯组列表可以满足您的需求。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯