获取 Active Directory 用户组信息

如何高效地从 Active Directory 中提取这些信息

  1. 获取用户组
   $groups = Get-ADGroup -Filter 'Name -like "somethig*"'

这一行代码使用 Get-ADGroup 命令,从 Active Directory 中筛选出名称以 “somethig” 开头的用户组。-Filter 参数的使用使得我们能够灵活地指定所需的组。

  1. 遍历每个组
   $output = $groups | ForEach-Object {         

这部分通过 ForEach-Object 循环,针对每个获取到的用户组进行处理,使得后续操作可以逐个应用。

  1. 提取组名
   $group = $_.Name                  

在处理每个组时,当前组的名称被存储在 $group 变量中,以便在后续步骤中引用。

  1. 获取组的成员
   Get-ADGroup $_ -Properties Member | 
   Select-Object -ExpandProperty Member | 

这里再次调用 Get-ADGroup,并指定要获取的成员属性。使用 Select-Object -ExpandProperty 可以直接得到成员列表,方便后续处理。

  1. 获取用户信息
   Get-ADUser -properties name,samaccountname,employeenumber | 
   Where { $_.Enabled -eq $True} | 

对于每个组成员,使用 Get-ADUser 提取用户的姓名、SAM 账户名和员工编号。Where 子句用于过滤出启用状态为 True 的用户,确保信息的有效性。

  1. 选择需要的输出字段
   Select Name,samaccountname,employeenumber,
   @{n = 'Group'; e = { $group }}

使用 Select-Object 指定输出的字段,除了用户的基本信息外,还添加了一个自定义字段 “Group”,它的值为当前组的名称。这使得输出结果更加清晰易读。

完整代码

$groups = Get-ADGroup -Filter 'Name -like "somethig*"'
$output = $groups | ForEach-Object {         
        $group = $_.Name                  
        Get-ADGroup $_ -Properties Member | 
        Select-Object -ExpandProperty Member | 
        Get-ADUser -properties name,samaccountname,employeenumber | 
        Where { $_.Enabled -eq $True} | 
        Select Name,samaccountname,employeenumber,
        @{n = 'Group'; e = { $group }}
}

🏆 每日挑战:你知道答案吗?

如何在 Python 中检查变量的类型?

温馨提示 : 非特殊注明,否则均为©李联华的博客网原创文章,本站文章未经授权禁止任何形式转载;IP地址:3.139.69.53,归属地:俄亥俄州Dublin ,欢迎您的访问!
文章链接:https://www.lilianhua.com/get-active-directory-user-group-information.html

文澜千文文澜千文Beta

请登录以使用此功能。

弹窗图片

年终回馈! 200积分免费领取,可通过用户中心或VIP会员页面通过兑换码进行兑换:OAK-8909956

Loading...