powershell - 获取组和子组的所有成员
问题描述
祝大家有美好的一天。我一直在尝试获取有关 Active Directory 中的组和子组的信息我尝试了许多变体,如下所示,
我本质上需要的是,获取 AD 中名称中包含“infolink”的所有组的 CSV,我需要的列是:
- 命名
- 序列号
- 用户名
- 邮件
- 团体
- 管理人
但无论我怎么说,我只能得到一些我需要的东西。是否有人已经有了一些可以让我的生活更轻松的代码?如果是这样,我将不胜感激。
Import-Module ActiveDirectory
$Groups = (Get-AdGroup -filter * | Where {$_.name -like "*Infolink*"} | select name -ExpandProperty name)
$Table = @()
$Record = @{
"Group Name" = ""
"Name" = ""
"Username" = ""
"mail" = ""
}
Foreach ($Group in $Groups) {
$Arrayofmembers = Get-ADGroupMember -identity $Group -recursive | select name,samaccountname
foreach ($Member in $Arrayofmembers) {
$Record."Group Name" = $Group
$Record."Name" = $Member.name
$Record."UserName" = $Member.samaccountname
$objRecord = New-Object PSObject -property $Record
$Table += $objrecord
}
}
$Table | export-csv "D:\Infolink.csv" -NoTypeInformation
解决方案
尝试这个,
Import-Module ActiveDirectory
$groups = Get-ADGroup -Filter "name -like '*Infolink*'" -Properties ManagedBy
$table = foreach ($group in $groups) {
$Arrayofmembers = Get-ADGroupMember -Identity $group -Recursive
$ArrayofmembersUsers = $Arrayofmembers | Get-ADUser -Properties Mail
$ArrayofmembersUsers | Add-Member -Name GroupInfoLinkName -MemberType NoteProperty -Value $group.Name -Force
$ArrayofmembersUsers | Add-Member -Name GroupInfoLinkManageBy -MemberType NoteProperty -Value $group.ManagedBy -Force
$ArrayofmembersUsers
}
$table | Select-Object -Property GivenName, SurName, SamAccountName, Mail, GroupInfoLinkName, GroupInfoLinkManageBy | Export-Csv "D:\Infolink.csv" -NoTypeInformation
一些指针..
- 使用过滤器,
Get-ADGroup
否则您将获得 AD 中的所有组,然后进行过滤。 - PSObject 很棒,但如果您的对象已经具有您需要的大部分属性,那么再
Add-Member
添加 1 或 2 个会很有帮助。 - 许多 cmdlet 都有一个 Properties 参数,您会看到我已经使用它来包含默认情况下未包含的属性。不幸
Get-ADGroupMember
的是不是这些 cmdlet 之一,因此管道Get-ADUser
有助于提供一种解决方法。
推荐阅读
- javascript - “未捕获(承诺)错误:'activeTab' 权限无效,因为尚未调用此扩展。” 在 Chrome 扩展程序中
- r - 如何保存具有从 for 循环创建的多个子图的图
- c# - 生产服务器上的 Microsoft Edge 兼容性
- spring-batch - Spring Batch JdbcPagingItemReader 按两列/键排序
- javascript - 使用 React 和 VS Code 导入模块
- swift - 如何在 Xcode 中将标签更改为按钮
- javascript - 如何使用 onclick() 删除列表项
- javascript - 如何从 laravel 下载文件
- r - 如何将值分配给具有唯一值的行?
- serialization - Micronaut 可选枚举查询参数