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