PowerShell 导出 csv / 奇怪的输出
PowerShell exporting csv / Strange output
我是 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,,,,,
但这只有在为 table 选择了一定数量的 properties/columns 之后才会发生。我只选择了 4 个它工作正常的属性。我错过了什么?
如有任何帮助,我们将不胜感激!
你能试试 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
Format-*
cmdlet 通常应该放在管道的最后。
如果您删除代码段中的 Format-Table
位,您应该会得到预期的结果。
此外,-NoTypeInformation
是您使用 Export-CSV
时最好的朋友 :-) 感谢 Matt
我是 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,,,,,
但这只有在为 table 选择了一定数量的 properties/columns 之后才会发生。我只选择了 4 个它工作正常的属性。我错过了什么?
如有任何帮助,我们将不胜感激!
你能试试 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
Format-*
cmdlet 通常应该放在管道的最后。
如果您删除代码段中的 Format-Table
位,您应该会得到预期的结果。
此外,-NoTypeInformation
是您使用 Export-CSV
时最好的朋友 :-) 感谢 Matt