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

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

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

如何通过 Get-ADGroup 获取 Active Directory 组列表


Get-ADGroup Cmdlet

Get-ADGroup cmdlet 使 IT 管理员能够通过以下方式检索有关一个或多个 Active Directory 组的信息:

  • 您可以通过多种方式识别组,例如其可分辨名称、GUID、SID 或 SAM 帐户名称。
  • 您可以使用筛选器和 LDAP 筛选器从 Active Directory 获取有关多个组的信息。
  • 此外,您还可以定义组对象变量,例如 $GroupObject。

Get-ADGroup 搜索组的一些默认属性。要搜索特定属性,请使用 Properties 参数。

Get-ADGroup:语法

以下是该 cmdlet 的语法:

Get-ADGroup  [-AuthType ]  [-Credential ]  [-Identity]    -Filter    -LDAPFilter    [-Properties <String[]>]   [-ResultPageSize ]   [-ResultSetSize ]   [-SearchBase ]   [-SearchScope ] [-Server ]   [-ShowMemberTimeToLive]

Get-ADGroup Cmdlet:常用参数

Get-ADGroup cmdlet 最常用的参数是:

  • 凭据
  • 验证类型
  • 身份
  • 筛选
  • LDAP过滤器
  • 分割
  • 特性
  • 结果页面大小
  • 结果集大小
  • 搜索库
  • 搜索范围
  • 服务器

凭据

默认情况下,PowerShell 使用登录用户的凭据来运行命令和脚本。您可以使用 Credential 参数来使用备用凭据。您可以为此参数提供用户名,然后系统会提示您输入密码。或者,您可以将凭据分配给变量并在命令中使用该变量。

如果提供的凭据在 Active Directory 中没有适当的权限来执行 cmdlet 或脚本,PowerShell 将返回错误。

验证类型

Authtype 参数指定要采用的身份验证类型。以下是有效值:

  • 0协商 — 这是标准身份验证技术。
  • 1基本 — 这需要安全套接字层 (SSL) 连接。

身份

Identity 是 Get-ADGroup cmdlet 唯一必需的参数。您可以使用以下任一方式指定组:

  • 专有名称
  • GUID
  • 安全识别码
  • 显示名称
  • 规范名称
  • SAM 帐户名

Identity 参数接受管道输入,但不能使用通配符。

筛选

要限制搜索,您可以使用 Filter 参数来指定使用 PowerShell 表达式语言的查询字符串。 PowerShell 表达式语言语法为值提供全面的类型转换支持。在以下示例中,请注意运算符位于属性和值之间:

Get-ADGroup -Filter “GroupCategory -eq ’Security’”
Get-ADGroup -Filter “GroupScope -eq ‘Global’”

以下运营商应该可以满足您的大部分要求:

OperatorMeaningExample-eqEqual toName -eq “G.U.Marketing”-neNot equal toGroupType -ne “-2147483640”-gtGreater thanModified -gt “01-06-2021”-geGreater than or equalCreated -ge “01-01-2018”-ltLess thanModified -lt “01-02-2021”-leLess than or equalCreated -le “01-01-2018”-likeWildcard searchextensionAttribute1 -like “*”-notlikeWildcard search with negationName -notlike “Exchange*”-andAndName -like “G.U.*” -and Name -like “*legal*”-orOrName -like “*marketing*” -or Name -like “*legal*”

请注意上述示例中的以下几点:

  • 将值括在单引号或双引号中。
  • 使用 -like “” 和 -notlike “” 来查找空值或完整值。

以下是一些其他示例:

Get-ADGroup -Filter 'Name -eq "Marketing"'
Get-ADGroup -Filter 'GroupType -ne "-2147583640"'
Get-ADGroup -Filter 'Modified -gt "01-07-2020"'
Get-ADGroup -Filter 'Created -ge "01-07-2017"'
Get-ADGroup -Filter 'Modified -lt "02-02-2020"'
Get-ADGroup -Filter 'Created -le "05-05-2016"'
Get-ADGroup -Filter 'extensionAttribute5 -like "*"'
Get-ADGroup -Filter 'Name -notlike "Exchange*"'
Get-ADGroup -Filter 'Name -like "F.M.*" -and Name -like "*HR*"'
Get-ADGroup -Filter 'Name -like "*finance*" -or Name -like "*Manager*"'

LDAP过滤器

您可以指定LDAP查询字符串来过滤AD组对象。该参数的数据类型是字符串。您不能使用具有此参数的管道。

Filter 参数还支持 LDAP 字符串。

分割

使用 Partition 参数将搜索限制为特定的 AD 分区,您可以使用其专有名称指定该分区。可分辨名称应该是当前目录服务器的命名上下文之一。

如果未提供值,则搜索默认 AD 分区。以下是确定分区参数默认值的一些规则。规则按如下所示的顺序进行评估,一旦建立了默认值,就不再检查更多规则。

  • 如果 Identity 参数设置为专有名称,则该专有名称将用作 Partition 参数的默认值。
  • 如果使用 Active Directory 提供程序驱动器运行该命令,则将根据驱动器的当前路径自动创建 Partition 参数的默认值。
  • 如果前两个条件都不适用,则将目标域的默认分区或命名上下文指定为 Partition 参数的默认值。

特性

默认情况下,Get-ADGroup cmdlet 仅返回对象的一些常见属性。要显示其他属性,请使用 Properties 参数指定您想要查看的属性。

要显示所有属性,请将 *(星号)与 Properties 参数结合使用。

要查看特定属性,请使用所需属性名称的逗号分隔列表。

要指定扩展属性,请使用该属性的名称。

对于默认情况下不显示的其他属性,请提供属性的 LDAP 显示名称。

结果页面大小

使用此参数指定结果的每页上应显示多少个对象。将值指定为 int32。默认值为 256。此参数不接受通配符或管道输入。

结果集大小

使用此参数指定搜索应返回的最大对象数。将值指定为 Int32。此参数不接受通配符或管道输入。

搜索库

使用此参数将搜索限制为特定 OU,您必须使用其专有名称来指定该 OU。如果不使用此参数,PowerShell 将运行目标域的 cmdlet。

搜索范围

使用此参数可将搜索范围限制在使用 SearchBase 参数定义的 OU 内。该参数有三个可能的值:

0 基础 - 仅搜索基础 OU。

1 OneLevel - 搜索基础 OU 及其直接子 OU。

2子树 — 在基本 OU 及其所有子 OU 中搜索。

服务器

使用此参数,您可以将搜索限制为指定实例或 ADDS(Active Directory 域服务)服务器。您可以使用目录服务服务器的完全限定域名或 NetBIOS 名称,或者具有 FQDN 的端口。

Get-ADGroup Cmdlet 示例

以下是如何使用 Get-ADGroup cmdlet 的一些示例:

  • 显示组的默认属性
  • 显示有关所有组的信息
  • 获取一个组的所有属性
  • 查找所有具有相似名称的组
  • 按 SAMAccountName 搜索组
  • 按 SID(安全标识符)搜索组
  • 通过指定组名称的一部分来搜索组
  • 统计域内AD组的数量
  • 搜索特定用户管理的所有组
  • 按组类型和组范围搜索
  • 搜索特定 OU 中的组
  • 搜索 OU 及其子 OU 中的组
  • 搜索不同服务器上的组
  • 使用 LDAP 过滤器搜索组
  • 将结果导出为 CSV 格式

显示组的默认属性

使用以下命令显示管理员组的默认属性:

Get-ADGroup -Identity Administrators

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

显示有关所有组的信息

要显示有关所有组的基本信息,请在 Filter 参数中使用通配符 (*):

Get-ADGroup -Filter *

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

获取一个组的所有属性

要查看组的所有属性,请使用带有通配符 (*) 的 Properties 参数:

Get-ADGroup -Identity Administrators -Properties *

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

查找所有具有相似名称的组

要查找名称中包含“Sales”一词的所有组,请使用以下 cmdlet:

Get-ADGroup -filter {name -like '*Sales*'} | Select name

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

按 SAMAccountName 搜索组

要按 SAMAccountName 搜索组,请使用以下命令:

Get-ADGroup -Identity "NBC Corp"

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

按 SID(安全标识符)搜索组

SID 用于存储访问控制列表 (ACL) 中的组权限。要搜索具有特定 SID 的组,请使用以下命令。请注意,我们使用 Properties 参数来显示组的成员资格及其默认属性。

Get-ADGroup -Identity S-1-5-21-2144973983-3571309751-2556536001-2690 -Properties member

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

通过指定组名称的一部分来搜索组

下面的命令使用前面描述的一些过滤器运算符来搜索组。 Properties 参数用于在结果中包含组的名称、邮件和成员资格。

Get-ADGroup -Filter "name -like '*finance*'" -Properties * | select name,mail,member

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

统计域内AD组的数量

如果要获取域中组对象的总数,请使用 Get-ADGroup cmdlet 和 Count 命令,如下所示。为了检索域中的所有组,我们使用了带有通配符 (*) 的 Filter 参数。

(Get-ADGroup -Filter '*').Count

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

搜索特定用户管理的所有组

要查找特定用户(例如管理员)拥有的所有组,请使用以下命令:

Get-ADGroup -Filter 'managedby -eq "administrator"'

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

请注意,结果包括所有默认属性。当返回的组数量较多时,分析细节就变得困难。因此,以下命令使用 Select 参数将结果限制为组的名称和可分辨名称:

Get-ADGroup -Filter 'managedby -eq "administrator"' -Properties * | select Name,distinguishedname

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

按组类型和组范围搜索

如果要根据组类型(安全性或分发)搜索组,然后按组范围(通用、全局或域本地)进一步筛选它们,可以使用以下 cmdlet。 Select 参数将结果限制为仅组名称。

Get-ADGroup -Filter 'GroupCategory -eq "Security" -and GroupScope -ne "DomainLocal"' -Properties * | select name

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

搜索特定 OU 中的组

以下命令使用 SearchBase 参数将搜索限制为由其可分辨名称指定的 OU:

Get-ADGroup -Filter "GroupScope -eq 'DomainLocal'" -SearchBase "OU=NBC,DC=milkyway,DC=local" | select name

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

搜索 OU 及其子 OU 中的组

以下命令搜索特定 OU 及其直接子 OU 中的组:

Get-ADGroup -Filter * -SearchBase "OU=BaseOU,DC=milkyway,DC=local" -SearchScope OneLevel | select name

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

此命令搜索特定 OU 及其所有子 OU 中的组:

Get-ADGroup -Filter * -SearchBase "OU=BaseOU,DC=milkyway,DC=local" -SearchScope Subtree | select name

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

搜索不同服务器上的组

如果要搜索特定域控制器上的组对象,可以使用 Server 参数,如下所示:

Get-ADGroup -Filter * -SearchBase "OU=BaseOU,DC=milkyway,DC=local" -Server dcexch2013.milkyway.local | select name

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

使用 LDAP 过滤器搜索组

以下命令使用 LDAP 过滤器搜索组。我们使用 SearchBase 和 SearchScope 参数来进一步限制搜索。

Get-ADGroup -LDAPFilter "(name=NBC*)" -SearchScope Subtree -SearchBase "OU=BaseOU,DC=milkyway,DC=local" | select name

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

将结果导出为 CSV 格式

我们展示的所有 cmdlet 都会在 PowerShell 中显示其结果。这是另一个例子:

Get-ADGroup -Filter "name -like 'NBC*'" -Properties * | select name,mail,groupscope

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

要将上述命令的结果保存到 CSV 文件,只需添加 Export-CSV 以及 CSV 文件的路径和名称:

Get-ADGroup -Filter "name -like 'NBC*'" -Properties * | select name,mail,groupscope | Export-CSV C:\TestFolder\GroupsResult.csv

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

以下是 CSV 文件形式的结果屏幕截图:

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

下面是将组的可分辨名称导出到 CSV 的另一个示例:

Get-ADGroup -Filter "name -like 'NBC*'" -Properties * | select name,mail,distinguishedname | Export-CSV C:\TestFolder\GroupsResult.csv

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

Netwrix组ID

虽然 PowerShell 使您能够搜索组,但学习所有 cmdlet 和创建脚本既耗时又容易出错。 Netwrix GroupID 提供了一个基于 Web 的界面,可以简化 Active Directory 管理员的用户和组管理任务,管理员甚至可以授权业务用户更新自己的配置文件并管理自己的组。

以下是有关群组搜索功能需要了解的关键事项:

  1. 您可以按名称、显示名称或规范名称快速搜索用户、组和联系人对象,如下所示:
  2. 高级搜索选项使您能够缩小搜索范围、限制对象范围并按其他属性进行搜索:
  3. 有专门针对团体的搜索功能。
  4. 您可以轻松导出结果。
  5. 搜索结果分为“我的组”、“我的会员资格”、“我的过期组”、“我的过期组”和“我的已删除组”,每种类型都有一个专用的单独选项卡。

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

GroupID 管理外壳

Netwrix GroupID 还提供基于 PowerShell 技术的管理 shell,用于执行更高级的任务。它提供了一个类似于 Get-ADGroup 的 cmdlet,称为 Get-Group。此 cmdlet 几乎可以执行 Get-ADGroup 执行的所有任务。下面是 Get-Group 命令的说明:

[玩转系统] 如何通过 Get-ADGroup 获取 Active Directory 组列表

结论

Get-ADGroup cmdlet 使管理员能够以多种方式搜索 Active Directory 组并控制结果中显示的属性。如果您喜欢易于学习且灵活的 GUI 界面以及全面的组、用户和权利管理功能,我们邀请您看看 Netwrix GroupID。

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

取消回复欢迎 发表评论:

关灯