Я безуспешно пытаюсь расширить свойство Members в 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
Если все, что вам нужно, это список участников группы:
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"}
ИЛИ вы можете просто удалить выбор из одного из первых двух операторов, чтобы сохранить тот же формат вывода (один блок на учетную запись).
Соль и перец для вкуса. Надеюсь это поможет.
Вы можете сделать что-то подобное:
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
}
Возможно, вы можете улучшить его по мере необходимости.