Как показать всех пользователей домена и их членство в группе (Active Directory) - PullRequest
1 голос
/ 18 января 2012

Я хотел бы найти способ (желательно VB Script или PowerShell) для создания отчета, который отображает все учетные записи пользователей в домене и группы, членами которых они являются.

Я бы хотел, чтобы это было экспортировано в электронную таблицу Excel в следующем формате:

Имя пользователя1 | Группа 1, Группа 2, Группа 3, Группа 4, Группа 5 и т. Д.
Имя пользователя2 | Группа 1, Группа 2, Группа 3, Группа 4, Группа 5 и т. Д.

Я играл с Quest Powershell Commands для AD и придумал следующее:

get-qaduser * -sizelimit 0 | select Name,MemberOf | export-csv report.csv

Однако это отображается в выходном файле как:

Username1 | System.String[]
Username2 | System.String[]
Username3 | System.String[]

Где System.String[] должны быть именами групп.

Что мне делать?

Ответы [ 3 ]

6 голосов
/ 18 января 2012

Попробуйте, вам нужно присоединиться к группе имен:

$memberOf = @{n='MemberOf';e={ ($_.MemberOf -replace '^CN=([^,]+).+$','$1') -join ';' }}

Get-QADUser -SizeLimit 0 | `
Select-Object Name,DN,SamAccountName,$memberOf | `
Export-Csv report.csv
0 голосов
/ 18 января 2012

Можете ли вы попробовать

get-qaduser * -sizelimit 0 | select -Property @{N="my";E={$_.name}}, -ExpandProperty MemberOf | export-csv report.csv 
0 голосов
/ 18 января 2012

Пример этого скрипта (не тестировался):

$users = get-qaduser * -sizelimit 0 

$a = @()

foreach ( $user in $users)
{  $al = New-Object System.Object

$al | Add-member -type Noteproperty -name Accountame $user.samaccountname
$al | add-member -type Noteproperty -name Groups $user.memberof

$a += $al

}

$a | export-csv report.csv  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...