从 csv 中的用户列表中获取 AD GroupMember

从 csv 中的用户列表中获取 AD GroupMember

我在 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"
}

答案1

MemberOf 字段是不会转储到 CSV 类型的对象Microsoft.ActiveDirectory.Management.ADPropertyValueCollection。您需要使用 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"

相关内容