Назад | Перейти на главную страницу

Как расширить это свойство в PowerShell

Я безуспешно пытаюсь расширить свойство 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
    }

Возможно, вы можете улучшить его по мере необходимости.