我正在玩一个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给了我计算机名称的长度。谢谢你的帮助!
答案 0 :(得分:0)
而不是使用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