【发布时间】: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 个可以正常工作的属性。我错过了什么?
任何帮助将不胜感激!
【问题讨论】:
-
我认为您在这里不需要
Format-Table,因为您导出为CSV。如果你去掉这个位会更好吗?Format-Table -Autosize -Property Company, DisplayName, SAMAccountName, EmailAddress, AccountExpirationDate, ExpiryDate, StreetAddress, L, Postalcode, co | -
除了@sodawillow 的评论(这是正确的 / 是您奇怪输出的原因),您可能希望将
-notype(或-NoTypeInformation)开关添加到您的Export-CSV电话;这将确保第一行是标题而不是#TYPE ...行。见ss64.com/ps/export-csv.html。 -
骗子谈到使用 Format-Cmdlet 作为输出。想看看有没有更好的。