过滤多个对象的多值 属性 字段并导出到 csv

Filter multivalue property field for multiple objects and export to csv

需要通过以下属性筛选所有广告用户,然后导出到 csv:

Get-ADUser -filter *  -Properties sn, givenname, samaccountname, employeenumber, employeeID,departmentnumber

在此 cas 中还包括所有默认属性。所以我尝试了这个:

Get-ADUser -filter *  -Properties sn, givenname, samaccountname, employeenumber, employeeID,departmentnumber | select sn, givenname, samaccountname, employeenumber, employeeID,departmentnumber

很好。这就是我要的。 现在的问题。当我 运行 使用 export-csv 选项时,departmentnumber 列中出现错误。

Get-ADUser -filter *  -Properties sn, givenname, samaccountname, employeenumber, employeeID,departmentnumber | select sn, givenname, samaccountname, employeenumber, employeeID,departmentnumber | Export-Csv filexyz.csv

因为这是多值 属性 它在 csv 文件中看起来像这样:(我删除了所有用户特定数据)

"sn","givenname","samaccountname","employeenumber","employeeID","departmentnumber" ,"Microsoft.ActiveDirectory.Management.ADPropertyValueCollection"

在 CLI Powershell 中它看起来像这样:(我删除所有用户特定数据)

sn : givenname : samaccountname : employeenumber : employeeID : departmentnumber : {ONR1200402}

知道如何解决将多值 属性 导出到 csv 的问题吗? 感谢您的帮助。

由于您的 departmentnumber 属性 是 collection 类型,您可以尝试通过 属性 表达式功能将所有值 -join 一起准备到 Export-CSV.

像这样:

Get-ADUser -filter *  -Properties sn, givenname, samaccountname, employeenumber, employeeID,departmentnumber | 
    Select-Object sn, givenname, samaccountname, employeenumber, employeeID,@{Name ='departmentnumber';Expression ={$_.departmentnumber -join ';'}} | 
        Export-Csv filexyz.csv

请注意,我在我的示例中使用分号 (;) 来连接 departmentnumber 集合中的值。