У меня есть список пользователей в файле 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"