【问题标题】:Filter multivalue property field for multiple objects and export to csv过滤多个对象的多值属性字段并导出到 csv
【发布时间】:2019-08-02 08:28:31
【问题描述】:

需要在以下属性上使用过滤器获取所有广告用户,然后导出到 csv:

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

在这种情况下,所有默认属性也包括在内。所以我尝试了这个:

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 : 给定名称 : samaccountname : 雇员编号:雇员编号: 部门编号:{ONR1200402}

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

【问题讨论】:

    标签: powershell filter multivalue export-csv


    【解决方案1】:

    由于您的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
    

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

    【讨论】:

    • 感谢您的快速回复。这就是我一直在寻找的。工作正常。
    猜你喜欢
    • 2014-03-28
    • 2016-08-03
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 2023-01-20
    • 2016-07-23
    • 1970-01-01
    相关资源
    最近更新 更多