获取 Active Directory 用户组信息
如何高效地从 Active Directory 中提取这些信息
- 获取用户组:
$groups = Get-ADGroup -Filter 'Name -like "somethig*"'
这一行代码使用 Get-ADGroup
命令,从 Active Directory 中筛选出名称以 “somethig” 开头的用户组。-Filter
参数的使用使得我们能够灵活地指定所需的组。
- 遍历每个组:
$output = $groups | ForEach-Object {
这部分通过 ForEach-Object
循环,针对每个获取到的用户组进行处理,使得后续操作可以逐个应用。
- 提取组名:
$group = $_.Name
在处理每个组时,当前组的名称被存储在 $group
变量中,以便在后续步骤中引用。
- 获取组的成员:
Get-ADGroup $_ -Properties Member |
Select-Object -ExpandProperty Member |
这里再次调用 Get-ADGroup
,并指定要获取的成员属性。使用 Select-Object -ExpandProperty
可以直接得到成员列表,方便后续处理。
- 获取用户信息:
Get-ADUser -properties name,samaccountname,employeenumber |
Where { $_.Enabled -eq $True} |
对于每个组成员,使用 Get-ADUser
提取用户的姓名、SAM 账户名和员工编号。Where
子句用于过滤出启用状态为 True
的用户,确保信息的有效性。
- 选择需要的输出字段:
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
文章链接:https://www.lilianhua.com/get-active-directory-user-group-information.html