私は、CSVからホスト名を取り、Get-ADComputerに対してファイルを保存し、元のCSVの特定の列に特定のオブジェクトを保存するスクリプトを作成しています。エクスポートGet-ADComputer to CSV
解決策は基本的なタスク(下のコード)のように見えますが、私の問題は、Get-ADComputerの出力は常に(Out-Stringを使って遊んだのを見ることができますが、 CSVを混乱させるようなNewLine文字やその他の書式設定の問題があります。
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の前後に1つのNew-Lineを持つ出力があります。もちろん、私はDateとUnix-Timestampが何であるかを知っています。輸出の対象となるプログラムには両方とも必要です – phowner
新しい文字列だけで文字列を取得するアイデアはありますか? – phowner