如何获取具有组成员身份且每行一个用户的所有活动域用户的列表?
我努力了:
Import-Module Activedirectory
Get-ADUser -Filter 'enabled -eq $true' -Properties SamAccountname,DisplayName,memberof | % {
New-Object PSObject -Property @{
UserName = $_.DisplayName
Groups = ($_.memberof | Get-ADGroup | Select -ExpandProperty Name) -join
","}
} | Select SamAccountname,UserName,Groups
但 SamAccountname 是空的。
答案1
您不需要,SamAccountname
因为 powershell 会在您使用 New- 创建的自定义对象中搜索此属性Object
。如果要SamAccountname
在此对象中检索,则必须进行修改以具有:
Get-ADUser -Filter 'enabled -eq $true' -Properties SamAccountname,DisplayName,memberof | % {
New-Object PSObject -Property @{
UserName = $_.DisplayName
oSamAccountname= $_.SamAccountname
Groups = ($_.memberof | Get-ADGroup | Select -ExpandProperty Name) -join
","}
} | Select oSamAccountname,UserName,Groups
答案2
这是相当简单的代码,但它给了我一个用户及其组成员的列表。我必须对结果进行排序才能得到我想要的结果,但这确实会产生 CSV 文件格式,这使得在 Excel 中操作更容易。
$ADGroupList = Get-ADGroup -Filter * | Select Name -ExpandProperty Name | Sort Name
ForEach($Group in $ADGroupList)
{
$members=Get-ADGroupMember -Identity $Group | Select Name, SAMAccountName | Sort
ForEach($member in $members)
{
Write-Host ($member.Name + "," + $member.SAMAccountName + "," + $Group.name)
}
}