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

[玩转系统] 如何创建基于查询的 Active Directory 组

作者:精品下载站 日期:2024-12-14 05:56:13 浏览:12 分类:玩电脑

如何创建基于查询的 Active Directory 组


使用 Active Directory (AD) 安全组和通讯组是简化 IT 管理、增强安全性和实现有效通信的最佳实践。然而,在许多组织中,这些组的成员资格是由特定用户、计算机和其他实体的显式列表定义的。使用这些静态组既费力又容易出错,因为当员工加入公司或轮换角色、添加或淘汰设备或发生其他变化时,所有相关组都需要手动更新。

有一个有用的替代方案可以提高安全性并减少 IT 开销:通过运行 AD 查询动态确定组成员身份。 Microsoft 提供了一个用户友好的界面,用于基于 LDAP 查询创建通讯组。不幸的是,没有相应的 GUI 用于创建基于查询的安全组(其中包含绝大多数 AD 组);唯一的本机选项是使用 Windows PowerShell 编写脚本。

本文介绍了创建这两种类型的动态组的本机方法,然后提供了一个强大的替代方案:Netwrix GroupID 中的智能组。

通讯组

让我们从通讯组开始,通讯组通常称为通讯组列表。通讯组列表使用户能够更高效、更准确地向人群发送电子邮件。例如,您可以为每个部门和团队以及每个办公地点创建一份通讯组列表。这些通讯组列表出现在全局地址列表 (GAL) 中,因此业务用户只需从 GAL 中选择一个条目即可向整个同事组发送消息。

静态通讯组的缺点

然而,由于员工不断地加入和离开组织以及在组织中改变角色,因此,尝试使通讯组列表保持最新对于 IT 团队来说是一件麻烦事。在某些情况下,他们甚至可能没有必要的洞察力来确保正确填充列表。

未能及时更新通讯组列表的后果可能会很严重。如果应列入列表的用户未包括在内,他们将不会收到对其自身生产力和基本业务流程可能很重要的消息。更糟糕的是,不准确的通讯组列表是一个安全和合规性问题,因为消息可能会发送给不应该看到其中包含的信息的个人。

基于查询的通讯组

为了提供帮助,Microsoft 在 Exchange Server 2003 中引入了基于查询的通讯组。它们提供与标准通讯组相同的功能,但成员身份不是由静态用户列表确定的。相反,成员资格是由 LDAP 查询动态生成的,每当有人向关联组发送电子邮件时就会运行该查询。

例如,您可以创建一个 LDAP 查询,将组的成员资格定义为当前位于组织中特定部门的所有用户。如果特定用户调到另一个部门,则一旦更新其 AD 用户对象,他们将不再收到发送到通讯组的电子邮件,而无需任何人手动修改通讯组列表的成员身份。

您可以在 Active Directory 中的 msExchDynamicDLFilter 和 msExchQueryFilter 中找到与通讯组关联的查询。

如何使用 Microsoft Exchange 创建基于查询的通讯组

基于查询的通讯组很容易创建:

  1. 启动 Exchange 管理中心并在左侧窗格中选择收件人
  2. 导航到组 > 新建 > 动态通讯组
  3. 在新建动态通讯组向导中,指定新列表的以下属性:
  4. 组的名称、别名和描述
  5. 您要在其中创建群组的组织单位 (OU)
  6. 组的所有者(可选但推荐)
  7. 收件人的类型,例如资源邮箱或拥有 Exchange 邮箱的用户
  8. 用户在通讯组列表中的成员资格标准,例如其部门和地理位置
  9. 单击保存创建组。

通过 Exchange 创建的基于查询的通讯组的限制

通过 Exchange 创建的基于查询的通讯组比静态通讯组列表更准确且更易于维护,但它们有一些需要记住的重要特征:

  • 用于确定通讯组列表中的成员资格的属性仅限于一些常见的用户属性(容器、州或省、公司和部门)以及一些自定义属性。
  • 由于通讯组列表的成员身份是在电子邮件发送到该列表时确定的,因此业务用户无法在 Outlook 客户端中查看通讯组列表的成员,因此无法确切确定谁将收到他们发送到该列表的邮件。
  • 每次将电子邮件发送到基于查询的通讯组列表时都会评估该查询。因此,广泛使用这些组会给 Exchange 服务器和全局编录带来很大的负担。

安全组

虽然通讯组确实很有价值并且需要保持最新状态以确保安全性和生产力,但 AD 安全组更为重要。管理员依靠 AD 安全组根据用户在组织中的角色快速准确地为其提供所需的访问权限。例如,您可以创建一个名为“销售”的安全组,并授予其对销售部门成员所需的特定信息、应用程序和其他资源的访问权限。作为组成员的每个用户都会自动获得分配给该组的所有访问权限。

静态安全组的缺点

与静态通讯组一样,IT 团队始终面临着确保每个静态安全组的成员都是正确用户的难题。事实上,随着时间的推移,随着员工在组织内的角色转变,他们通常会保留与他们的职责不再相关的群体的成员身份。例如,如果某人从销售部门调到营销部门,他们通常会保留对销售数据库和其他资源的权限,但他们应该不再能够访问这些资源,因为没有人将他们从销售相关组中删除。此外,负担过重的管理员可能会犯错误,例如将初级员工添加到“经理”等组中,从而使他们对敏感信息有不当访问权限。

这种过度配置对于安全性和法规遵从性来说都是一个严重的问题。另一方面,IT 团队有时无法授予用户其应属于的所有安全组的成员资格,这可能会破坏重要的业务流程并给帮助台带来负担。

使用 Microsoft PowerShell 更新安全组的成员资格

管理员可以使用 Windows PowerShell 根据查询创建和填充安全组。他们还可以使用脚本来更新安全组的成员身份,而不是手动添加和删除成员。例如,以下脚本可确保仅使用指定 OU (desiredUsers) 中的用户填充安全组 PseudoDynamicGroup:

导入模块ActiveDirectory

#Define the variable ‘groupname’ and load it with the members of the group ‘PseudoDynamicGroup’.

 $groupname = PseudoDynamicGroup

 #Define the variable ‘users’ and populate it with all the users in specified OU.

 $users = Get-ADUser -Filter * -SearchBase "ou=desiredUsers,dc=domain,dc=tld"

 #Iterate through the users in the ‘users’ variable. Add each of them to the group ‘PseudoDynamicGroup’ if they are not already a member.

 foreach($user in $users)

 {

 Add-ADGroupMember -Identity $groupname -Member $user.samaccountname -ErrorAction SilentlyContinue

 }

 #Define the variable ‘members’ and populate it with the current membership of the security group ‘PseudoDynamicGroup’.

 $members = Get-ADGroupMember -Identity $groupname

 #Iterate through the users in the ‘members’ variable. If any user is not in the specified OU, remove them from ‘PseudoDynamicGroup’.

 foreach($member in $members)

 {

 if($member.distinguishedname -notlike "*ou=desiredUsers,dc=domain,dc=tld*")

 {

 Remove-ADGroupMember -Identity $groupname -Member $member.samaccountname

 }

 }

通过 PowerShell 创建的基于查询的安全组的限制

显然,为每个 AD 安全组精心创建这样的 PowerShell 脚本是一项艰巨的任务,需要专门的技能。此外,需要维护脚本,并且需要在创建新项目或团队时编写新脚本。许多组织根本没有 IT 资源来投入这项具有挑战性和关键性的工作,这导致他们寻找像 Netwrix GroupID 这样强大的第三方解决方案。

具有 Netwrix GroupID 的基于查询的组

借助 Netwrix GroupID,您可以轻松创建通讯组列表和安全组,其成员资格是使用 Active Directory 查询动态确定的。这些基于查询的组称为智能组。

要创建智能组,您只需为该组定义 AD 查询并设置运行它的计划。每次运行查询时,它都会从目录中获取对象以更新组成员身份。该查询可以手动运行,也可以按照定义的计划自动运行。因此,与通过 Exchange 创建的动态通讯组列表不同,Netwrix GroupID 通讯组不会在每次向组发送电子邮件时运行查询,从而不会对 Exchange 服务器造成过度压力。

创建查询

借助 Netwrix GroupID 中的查询设计器,您可以获得用于创建查询的直观可视化界面;无需编写 PowerShell 命令。它有以下选项卡:

  • 常规 - 选择可以成为组成员的对象类型。
  • 存储 — 选择任何 Exchange 服务器或邮箱数据库上的邮箱。
  • 身份存储 - 指定组成员身份的标准。例如,您可以使用位置、公司、部门或员工 ID 属性,还可以应用 AND 和 OR 等逻辑条件来进一步过滤结果。
  • 高级 - 使用 Oracle、ODBC、Microsoft SQL Server 或文本文件等外部数据源来帮助确定组的成员资格。
  • 包含/排除 - 在组成员中添加或删除对象,无论查询结果如何。
  • 智能脚本 - 使用 VB 脚本支持根据您自己的自定义逻辑编写脚本。

结论

基于查询的安全组和通讯组列表对于提高安全性和业务生产力、同时减少 IT 工作负载具有不可估量的价值。但是,对于本机选项,使用动态通讯组列表可能会使您的 Exchange 资源负担过重,并且创建动态安全列表需要大量时间和 PowerShell 专业知识。 Netwrix GroupID 提供了一个强大的替代方案:智能组,可以轻松创建和维护动态安全组和通讯组列表。

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

取消回复欢迎 发表评论:

关灯