我正在研究從CSV獲取主機名的腳本,將它們歸檔爲Get-ADComputer,然後將某些對象保存在原始CSV的某些列中。將Get-ADComputer導出爲CSV
雖然解決方案看起來像一個基本的任務(代碼如下),但我的問題是,Get-ADComputer的輸出始終如一(你可以看到我用Out-String玩過,但也嘗試了其他格式化選項)包含很多NewLine字符或其他格式問題導致CSV混淆。
Clear-Host
Import-Module ActiveDirectory
$import = Import-Csv 'XXX' -Delimiter ';'
Foreach ($row in $import){
$hostname = $row.HOSTNAME
if($hostname.length -gt 3){
$computer = Get-ADComputer -Filter {Name -like $hostname} -Properties LastLogonDate, LastLogonTimeStamp
$row.AD_LastLogon.ToString() = $computer | Select-Object LastLogonDate | Select-Object -first 1 | FT -HideTableHeaders | Out-String
$row.AD_LLTimestamp = $computer | Select LastLogonTimestamp |Select-Object -first 1 | FT -HideTableHeaders | Out-String
}
}
$import | Export-Csv 'XXX' -Delimiter ';' -NoType
我現在的問題是,如果任何人都可以使用的方法有助於獲得例如Get-ADComputer's LastLogonDate
裸字符串結果,不帶任何格式或標題包括在內。
在此先感謝!
.ToString()以及-First 1,Out-String,使它成爲這篇文章,因爲我將它從我試過的多個版本複製到一起。再一次,這不是一個工作劇本。 – phowner
Select-Property Option做了一些幫助,我知道在TimeStamp之前和之後只有一個New-Line,而不是Multiple。當然,我知道Date和Unix-Timestamp是什麼,導出的程序需要 – phowner
任何想法,只要字符串,沒有任何新的行? – phowner