PowerShell перечисляет всех активных пользователей домена с членство в группе

Как я могу получить список всех активных пользователей домена с членством в группах и одним пользователем в каждой строке?

Я пробовал:

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 пусто.

2
задан 31 May 2017 в 20:35
2 ответа

У вас нет 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
ответ дан 3 December 2019 в 09:58

Это довольно простой код, но он дал мне список пользователей и их членство в группах. Мне пришлось отсортировать результаты, чтобы они выглядели так, как я хотел, но это приводит к формату файла 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)
  }
}
2
ответ дан 3 December 2019 в 09:58

Теги

Похожие вопросы