大家好。 我一直在尝试获取有关Active Directory中的组和子组的信息 我已经尝试了许多类似以下的变体,
我真正需要的是,获取广告名称中包含“ 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
答案 0 :(得分:0)
尝试一下
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中的所有组,然后进行过滤。 Add-Member
将有助于增加1或2个。Get-ADGroupMember
不是这些cmdlet之一,因此通过管道传递到Get-ADUser
可以提供一种解决方法。