我正在尝试扩展 powershell 中的成员属性,但没有成功 :(
这是我的代码...
Import-Module ActiveDirectory
Get-ADGroup -Filter * -Properties * |
Select-Object -Property Name, Description, GroupCategory,`
@{Name='Members';exp={Get-adgroupmember $_.Name | Select -Expand Name |Select}} |
format-list -Property Name, Members, Description, GroupCategory
答案1
如果您需要的只是小组成员列表:
Get-ADGroupMember "Remote Desktop Users" -Recursive | Select samaccountname
为您提供帐户名称列表,或
Get-ADGroupMember "Remote Desktop Users" -Recursive | Select name
为您提供用户姓名列表(输入 AD 中)
节省一些时间,通过使用以下命令将输出传输到文件:
高于一切 | Out-File "C:\Users\username\Desktop\RDU_members.txt" -Append
如果您仍想提取该组本身的完整描述,您可以使用:
Get-ADGroup -Filter {name -like "Remote Desktop Users"}
或者您可以简单地从前两个语句之一中删除选择,以保持相同的输出格式(每个帐户一个块)。
加盐和胡椒调味。希望这能有所帮助。
答案2
你可以做类似的事情:
Import-Module ActiveDirectory
Get-ADGroup -Filter * -Properties * | ForEach-Object {
$MyGroup= New-Object PSObject
Add-Member -InputObject $MyGroup -MemberType NoteProperty -Name "Name" -Value $_.Name
Add-Member -InputObject $MyGroup -MemberType NoteProperty -Name "Category" -Value $_.GroupCategory
$Members= Get-ADGroupMember $_.Name | Select-Object -ExpandProperty Name
$Members= $Members -join "`r`n"
Add-Member -InputObject $MyGroup -MemberType NoteProperty -Name "Members" -Value $Members
Write-Output $MyGroup | Format-List
}
也许您可以根据需要改进它。