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

Get-ADGroupMember из списка пользователей в CSV

У меня есть список пользователей в файле csv, они отображаемые имена. Я написал следующее, но все, что я получил, - это отображаемое имя, а не членство, что мне нужно?

$csv = Import-CSV "c:\users.csv"
foreach($user in $csv){ 
$Displayname = $user.displayname
Get-aduser -filter {displayname -eq $displayname} -Properties displayname,memberOf |`
select "Displayname","MemberOf" | Export-Csv "c:\temp\usersmembership.csv"
}

Поле MemberOf - это объект типа Microsoft.ActiveDirectory.Management.ADPropertyValueCollection что не будет сбрасывать в CSV. Вам нужно использовать оператор select, который будет вычислять содержимое файла как текст. Эта строка получит содержимое (которое будет раздражать выдающиеся имена), найдет общие имена, преобразует вывод в текст и заменит символы новой строки запятыми.

Get-ADUser -filter {displayname -eq $displayname} -prop displayname,memberof `
  | select DisplayName,@{Name='Groups';Expression={$_ | Select -ExpandProperty MemberOf `
  | Get-ADGroup | select -ExpandProperty Name | Out-String | %{$_ -replace ("`n",",")}}} `
  | Export-Csv "c:\temp\usersmembership.csv"