我正在努力将我的对象列表导出到csv文件。到目前为止,我有以下代码:
$accessListPath = "example.cfg"
$Outputfile = "ScriptOutput.csv"
$accessList = @()
$xml = [XML](Get-Content -Path $accessListPath)
$xml | Select-Xml -xpath "//value" | %{
$accessList += New-Object -TypeName PSObject -Property @{
Rolle = $_.Node.roll
Gruppe = $_.Node.group
ADString = $_.Node."#text".trim()
}
}
Export-Csv -InputObject $accessList -Path $Outputfile
字符串
对应的XML文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<ldap>
<host>x.x.x.x
<users>
<user>DC=Example,DC=internal</user>
</users>
<rights>
<var>distinguishedName
<value>CN=...,OU=user,OU=...
<roll>2</roll>
</value>
<value>CN=...,OU=user,OU=...
<roll>5</roll>
<roll>18</roll>
</value>
<value>CN=John Doe*
<roll>9</roll>
</value>
<value>CN=Domain Admin*
<group>Administrator</group>
<roll>1</roll>
</value>
<value>CN=...,OU=user,...
<group>Example Group</group>
<roll>8</roll>
<roll>12</roll>
<roll>14</roll>
<roll>15</roll>
</value>
</var>
<var>search:member=<userdn>
<value>CN=group1*
<group>01 Group XY</group>
<roll>1</roll>
</value>
<value>CN=Client1,OU=*
<roll>3</roll>
</value>
<value>CN=...,OU=*
<roll>5</roll>
</value>
<value>CN=ImportantClient06*
<group>06ImportantGroup</group>
<roll>8</roll>
<roll>11</roll>
<roll>12</roll>
</value>
</var>
</rights>
</host>
型
这是.csv文件中的输出:
TYPE System.Object[]
Count Length LongLength Rank SyncRoot IsReadOnly IsFixedSize IsSynchronized
49 49 49 1 System.Object[] False True False
型
2条答案
按热度按时间vnjpjtjt1#
尝试:
字符串
当你指定
-InputObject $accessList
时,你说的是使用THIS对象。这实际上导出了数组,这就是你所看到的。当你使用$accessList | Export-CSV ...
时,它将数组中的元素发送到管道中,这样所有的元素都被导出了。另外,您可以添加
-NoTypeInformation
来删除TYPE ...
-行。ovfsdjhp2#
这篇文章的答案帮助解决了我的挑战。|导出-CSV”我尝试过“|Out-String”,这导致我在我的表DataBase Plan-f51da2a1-8c5c-496c-aa44-46a259b1471aa.xml中再次使用xml文本.
在我的代码下面。它获取一个文件的名称,并显示它旁边的内容。
字符串