Как я могу получить список всех активных пользователей домена с членством в группах и одним пользователем в каждой строке?
Я пробовал:
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 пусто.
У вас нет 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
Это довольно простой код, но он дал мне список пользователей и их членство в группах. Мне пришлось отсортировать результаты, чтобы они выглядели так, как я хотел, но это приводит к формату файла 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)
}
}