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

[玩转系统] PowerShell - 获取 AD 组成员和用户列表

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

PowerShell - 获取 AD 组成员和用户列表


PowerShell Get-AdGroupMember 用于从 Active Directory 获取成员。您可以通过指定 Active Directory 组名称来获取广告组成员。 Identity 参数指定要访问的 Active Directory 组以获取该组的成员。

作为系统管理员,我们必须查询活动目录以获取 AD 组中的用户列表,并将广告组成员导出为 CSV 或任何文件格式。

在本文中,我们将讨论如何使用 PowerShell Get-AdGroupMember cmdlet 从 AD 组中获取用户并获取广告组的成员。

PowerShell 获取 AdGroupMember

Get-AdGroupMember cmdlet 使用以下语法获取 Active Directory 组的成员。

语法

Get-ADGroupMember
   [-AuthType <ADAuthType>]
   [-Credential <PSCredential>]
   [-Identity] <ADGroup>
   [-Partition <String>]
   [-Recursive]
   [-Server <String>]
   [<CommonParameters>]

参数

-Identity:用于使用任何值(如 DistinguishedName、GUID、SID 或 SAMAccountName)指定 Active Directory 组对象。

-递归:从组的层次结构中获取所有成员。

-服务器: 通过提供相应域名或目录服务器的值之一来指定要连接的 Active Directory 域服务实例。

PowerShell 获取 AD 组成员

Active Directory 组内可以有多个组,并且每个组都有关联的用户。

要从 AD 组中获取用户列表并从 AD 组中获取组,请运行以下命令

Get-ADGroupMember -Identity "Shell_Sales" | Select-Object Name | Sort-Object Name

在上述 PowerShell 脚本中,Get-AdGroupMember cmdlet 使用 Identity 参数指定广告组名称,以从“Shell_Sales” 广告组,并将输出传递给 Select-Object 命令。

Select-Object cmdlet 选择对象的名称并按名称对对象进行排序,以将广告组的成员显示到控制台。

用于列出 Active Directory 中的组成员的上述 PowerShell 脚本的输出如下。

Name
----
Administrator
ShellGeek
Shell_Asia
Shell_Europe

从组和嵌套组中获取用户列表

要获取广告组和嵌套组中的用户列表,请使用 Get-ADGroupMember cmdlet 递归检查 Active Directory 中的 -Recursive 参数指定的内容并获取广告组成员。

Get-ADGroupMember -Identity "Shell_Sales" -Recursive | Get-ADUser -Property DisplayName | Select-Object DisplayName

在上面获取广告组成员的 PowerShell 脚本中,

使用 PowerShell Get-AdGroupMemeber 获取由 Identity 参数指定的 Active Directory 组的成员,并将广告组成员传递给第二个命令。

第二条命令使用 Get-ADUser cmdlet 从广告用户列表中获取广告用户并返回广告用户显示名称

第三个命令,Select-Object 显示控制台上组和嵌套组中所有广告用户的名称。

获取启用 AdGroupMember 的帐户

要获取指定组中启用了 adgroupmember 的帐户,请使用 Get-AdGroupMember cmdlet 获取该组的所有成员,并将它们通过管道传输到 Get-AdUser cmdlet 以获取启用的用户帐户。

$group = "SALESLEADER"

$adusers = Get-ADGroupMember -Identity $group | where {$_.objectclass -eq "user"}

foreach ($activeuser in $adusers) 
{ 

    Get-ADUser -Identity $activeuser | where {$_.enabled -eq $true} | select Name, SamAccountName, UserPrincipalName, Enabled 
    
 }

在上面的 PowerShell 脚本中,Get-AdGroupMember 使用 Identity 参数从广告组 SALESLEADER 中获取所有用户并将其存储在 $adusers 中多变的。

使用 foreach 循环迭代 $adusers 并使用 Get-AdUser cmdlet 检查用户帐户启用状态并选择名称,以及启用帐户的 samaccountname。

上述 PowerShell 脚本的输出获取启用了 adgroupmember 的用户。

[玩转系统] PowerShell - 获取 AD 组成员和用户列表

输出显示 Name、SamAccountName、UserPrincipalName 和 Enabled 列。已启用列仅显示启用 adgroupmember 的 True 结果。

Get-AdGroupMember MaxGroupOrMemberEntries 修改

Get-AdGroupMember 获取 Active Directory 对象及其属性的默认限制为 5000。

如果您有超过 5000 个 Active Directory 对象并尝试使用 Get-AdGroupMember 获取所有成员,则会抛出错误:“Get-AdGroupMember:超出了此请求的大小限制。

您可以增加 MaxGrouporMemberEntries 以检索超过默认限制的活动目录对象。

请参考以下步骤添加MaxGroupOrMemberEntries:

  • 进入域控制器
  • 导航到位置 C:\Windows\ADWS
  • 在记事本中打开文件Microsoft.ActiveDirectory.WebServices.exe.config
  • 检查 MaxGroupOrMemberEntries 键是否可用,如果可用,则增加大小,否则按照文件的以下键进行操作。
  • 添加条目

注意:在进行任何更改之前,请先备份Microsoft.ActiveDirectory.WebServices.exe.config

获取 AdGroupMemeber 过滤器示例

要从组中获取用户,请使用 get adgroupmember 过滤器检查 ObjectClass 是否等于“user”。

 Get-ADGroupMember "SALESLEADER" | where {$_.objectclass -eq "user"} | Select Name,DistinguishedName | Format-Table -AutoSize

在上面的 PowerShell 脚本中,Get-AdGroupMember 获取广告组“SALESLEADER”中的所有成员,并使用过滤器获取该组中的用户。

Get-AdGroupMember 使用 Format-Table 进行输出格式设置,如下所示

PS C:\> Get-ADGroupMember "SALESLEADER" | where {$_.objectclass -eq "user"} | Select Name,DistinguishedName | Format-Table -AutoSize

Name                             DistinguishedName
----                                   -----------------
Tom Smith                    CN=Tom Smith,OU=SALES,DC=SHELLPRO,DC=LOCAL
Chris Dore                    CN=Chris Dore,OU=SALES,DC=SHELLPRO,DC=LOCAL
Gary Waugh                 CN=Gary Waugh,OU=SALES,DC=SHELLPRO,DC=LOCAL


PS C:\>

要从 Active Directory 获取组列表,请使用 Get-AdGroupMember Filter 检查 ObjectClass 是否等于“group” 。

 Get-ADGroupMember "SALESLEADER" | where {$_.objectclass -eq "group"} | Select Name,DistinguishedName | Format-Table -AutoSize

在上面的 PowerShell 脚本中,Get-AdGroupMember 从 Active Directory 中获取所有成员,并使用 get adgroupmember 过滤器检查 ObjectClass 是否等于 并检索组名称。

结论

我希望上述有关如何获取广告组成员以及从广告组和嵌套组中获取用户列表的文章可以帮助您了解 PowerShell Get-ADGroupMember cmdlet 的使用。

您可以详细了解如何将广告组成员导出到 CSV 文件以及 Set-AdGroup 以在 PowerShell 中修改 Active Directory 组属性。

您可以在 ShellGeek 主页上找到有关 PowerShell Active Directory 命令和 PowerShell 基础知识的更多主题。

推荐内容

获取广告组成员 SAM 帐户名称

获取用户和组的 Adgroup 成员计数

获取 Adgroup 成员姓名和电子邮件地址

从多个组中获取 Adgroupmember

获取域管理员组的 AdGroup 成员

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

取消回复欢迎 发表评论:

关灯