【问题标题】:PowerShell exporting csv / Strange outputPowerShell 导出 csv / 奇怪的输出
【发布时间】:2016-01-08 12:46:06
【问题描述】:

我对 PowerShell 很陌生,在使用代码和脚本方面并不是最出色的,但我正在努力学习。现在解决问题!

我编写了一个简短的脚本,列出了具有特定属性的特定 OU 的所有用户。

Get-ADUser -Filter * -SearchBase “OU=XY,OU=XY,OU=XY,OU=XY,DC=XY,DC=XY” -Properties DisplayName, SAMAccountName, EmailAddress, msDS-UserPasswordExpiryTimeComputed, AccountExpirationDate, Company, StreetAddress, L, PostalCode, co | 
    select DisplayName, SAMAccountName, EmailAddress, @{ Name = "ExpiryDate"; Expression = { [datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed") } }, AccountExpirationDate, Company, StreetAddress, L, PostalCode, co | 
    Sort-Object -Property Company | 
    Format-Table -Autosize -Property Company, DisplayName, SAMAccountName, EmailAddress, AccountExpirationDate, ExpiryDate, StreetAddress, L, Postalcode, co

这很好用,当在 powershell 中运行脚本时,一切都会正确显示,但是当我尝试将信息导出到 csv 文件时:

Get-ADUser -Filter * -SearchBase “OU=XY,OU=XYs,OU=XY,OU=XY,DC=XY,DC=XY” -Properties DisplayName, SAMAccountName, EmailAddress, msDS-UserPasswordExpiryTimeComputed, AccountExpirationDate, Company, StreetAddress, L, PostalCode, co | 
    select DisplayName, SAMAccountName, EmailAddress, @{ Name = "ExpiryDate"; Expression = { [datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed") } }, AccountExpirationDate, Company, StreetAddress, L, PostalCode, co | 
    Sort-Object -Property Company | 
    Format-Table -Autosize -Property Company, DisplayName, SAMAccountName, EmailAddress, AccountExpirationDate, ExpiryDate, StreetAddress, L, Postalcode, co | 
    Export-Csv -Path c:\xy.csv

我在文件中得到一些奇怪的字符,如下所示:

27c87ef9bbda4f709f6b4002fa4af63c,,,,,

但这只发生在为表格选择了一定数量的属性/列之后。我只选择了 4 个可以正常工作的属性。我错过了什么?

任何帮助将不胜感激!

【问题讨论】:

标签: powershell export-to-csv


【解决方案1】:

Format-* cmdlet 通常应该在管道中的最后一个。

如果您删除 sn-p 中的 Format-Table 位,您应该会得到预期的结果。

另外,-NoTypeInformation 是您使用 Export-CSV 时最好的朋友 :-) 感谢 Matt

【讨论】:

    【解决方案2】:

    你能试试 out-file 命令吗?

    Get-ADUser -Filter * -SearchBase “OU=XY,OU=XYs,OU=XY,OU=XY,DC=XY,DC=XY” -Properties DisplayName, SAMAccountName, EmailAddress, msDS-UserPasswordExpiryTimeComputed, AccountExpirationDate, Company, StreetAddress, L, PostalCode, co | select DisplayName, SAMAccountName, EmailAddress, @{ Name = "ExpiryDate"; Expression = { [datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed") } }, AccountExpirationDate, Company, StreetAddress, L, PostalCode, co | Sort-Object -Property Company | Format-Table -Autosize -Property Company, DisplayName, SAMAccountName, EmailAddress, AccountExpirationDate, ExpiryDate, StreetAddress, L, Postalcode, co | out-file -filepath c:\xy.csv
    

    【讨论】:

    • 操作员正在询问有关 csv 的问题。这不会那样做。
    • 这是一个怎样的答案? op 想要将输出导出到 .csv 扩展文件。 Out-file 没有意识到
    • @GünerHacıoğlu 你能展示你创建 csv 的命令吗?目前还没有。
    • 我使用了共享点站点角色分配导出。这是示例代码:code$myweb = Get-SPWeb "sharepoint-site" $mylist = $myweb.Lists | Where-Object { $_.Title -eq 'SharedDocuments' } foreach ($mylist.Items 中的$item){ $item.Url | out-file -Append -filepath "C:\permissions.csv" out-file -append -filepath "C:\permissions.csv" -inputobject $item.RoleAssignments -width 150 }code
    • @sodawillow:感谢您的快速回答!如果没有 fomat-table 命令,它确实可以解决。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2020-01-19
    • 2012-02-21
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多