【问题标题】:Powershell Out-File to csv not printing to single rowPowershell Out-File 到 csv 不打印到单行
【发布时间】:2014-04-01 20:47:27
【问题描述】:

我正在使用一个 PS 脚本来使用 Get-ADComputer 提取 PC 的值(这是一个更大的脚本的一部分,但我正在分块处理它。)代码是:

Get-ADComputer -Filter * -SearchBase "OU=Computers,DC=domain,DC=local" -Properties Name,lastLogonTimestamp | ForEach-Object {$_.Name,[DateTime]::FromFileTime($_.lastLogonTimestamp)} | Out-File time.csv

当我将 CSV 导出到上一行时,我会在新行中获得每个条目:

Thursday, October 31, 2013 8:49:26 AM
COMPUTER1
Sunday, March 02, 2014 1:34:37 PM
COMPUTER2

我想读取输出(假装“|”是同一行中的新列):

COMPUTER1 | Thursday, October 31, 2013 8:49:26 AM
COMPUTER2 | Sunday, March 02, 2014 1:34:37 PM

另外,我开始使用 Out-File,因为 Export-Csv 在我运行上述脚本时给了我计算机名称的长度。感谢您的帮助!

【问题讨论】:

    标签: powershell csv export


    【解决方案1】:

    不要使用 ForEach,而是使用 Select,然后将即兴哈希表扔进去,让您的 LastLogonTime 像这样转换:

    Get-ADComputer -Filter * -SearchBase "OU=Computers,DC=domain,DC=local" -Properties Name,lastLogonTimestamp | select Name,@{l="Last Logon";e={[DateTime]::FromFileTime($_.lastLogonTimestamp)}}|Export-Csv time.csv -NoTypeInformation
    

    【讨论】:

      猜你喜欢
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 2020-12-23
      • 2023-02-02
      • 2023-02-24
      • 2018-02-13
      • 2014-10-29
      • 1970-01-01
      相关资源
      最近更新 更多