【问题标题】:Two row header for Get-ADObject | Export-Csv?Get-ADObject 的两行标题 |导出-CSV?
【发布时间】:2018-12-14 10:40:10
【问题描述】:

我们使用的外部系统需要导入 excel 模板。正在导入的数据可以来自 Active Directory 数据。

我正在 PowerShell 2.0 中构建一个使用当前 Active Directory 数据构建此模板的一键式解决方案。

我当前使用的进程是Get-ADObject > select and do some reformating | Export-Csv

我要复制的模板有两个标题行。 Export-Csv 只提供了一个header,基于字段名(我实际使用Select-Object @{Label=,Expression=} 自定义ADObject 属性名)。

如何添加另一个标题行?我可以在每个 ADObject 属性的开头附加一个条目吗?

标题 1 条目1 条目2 条目3

标题 1 标题 2 条目1 条目2 条目3

【问题讨论】:

  • 看看PSCustomObjects:kevinmarquette.github.io/…
  • 我以前用过它们。我要问的是如何将一个条目附加到属性列表的开头(如附加标题),因为 $property = "Header" + $property 将“标题”连接到每个字符串条目的开头。也许像 Property.Add("Header"); Property.add(值列表)?
  • 只需插入一个自定义对象,将您的辅助标题作为以数据开头的主标题命名的属性值。
  • 我可以附加两个自定义对象并导出到同一个 csv 吗?我想我记得 export-csv 有一个 -append 参数?可能是?将测试
  • 这与我在概念上得到的差不多。但我不相信我可以在相同的属性上附加两个 PSCustomObjects,我不能将两个对象导出到同一个 csv 文件,第二个对象打印在 A 列的下一行。我必须查看导出 - csv 参考以查看是否有 -append 参数。如果没有,它会在第二次写入时覆盖现有内容

标签: powershell active-directory powershell-2.0


【解决方案1】:

也许只是复制到第二个标题?

Get-ADObject | Select-Object Header1,@{label='Header2';expression=$_.Header1}

或者如果它需要在同一行:

$Data = Get-ADObject | additional piping
$Data.Header1 += 'Header2'
$Data | Export-CSV

或者您正在尝试添加属性

$Data = Get-ADObject | additional piping
[PSCustomObject]$NewData = $Data
$NewData | Add-Member -MemberType NoteProperty -Name 'MyProperty' -Value 'myvalue'
$NewData | Export-CSV

【讨论】:

  • 标题是我从 AD 中提取的所有其他字段。您的第一个解决方案只是将标题添加为列。是的,它们需要是两个不同的行才能正确读取
  • 也许我应该澄清一下。标题 1 本身不是属性。它们是我从 ADObject 中提取的属性的名称。我需要添加第二个标题行,但由于我不能给属性两个不同的名称,我需要以某种方式使用 Header2 值向这些属性中的每一个添加一个条目。
  • 我更新了我的答案,给出了第三个例子,也许这就是你的意思?
【解决方案2】:

所以我最终得到了我想要的,首先将我的 AD 对象转换为自定义对象,然后创建第二个具有相同字段的自定义对象,但我的标题作为值。把它们都扔进一个数组中,写得很漂亮。

$ad = Get-AdObject...
$obj1 = New-Object -TypeName PSCustomObject -property $ad

$hash = @{
    'col1'='header1';
    'col2'='header2';
     ...
}
$obj2 = New-Object -TypeName PSCustomObject -property $hash

$arr1 = @()
$arr1 += $obj2, $obj1
$arr1 | Export-csv -path...

【讨论】:

    猜你喜欢
    • 2019-05-29
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 2020-07-01
    • 2017-12-02
    • 1970-01-01
    相关资源
    最近更新 更多