2012-04-23 9 views
0

私は、ADの特定のOU内のすべてのユーザーのLastLogonTimestampとSAMAccountを取得し、タイムスタンプを日付に変換し、文字列から日付のみを抽出する小さなスクリプトを用意しています。その部分は正常に動作します。私はそれをCSVに出力したいので、Excelで開くことができ、列に完全に整形され、すべてがきれいに見えるかもしれません。powershellスクリプトをCSVにエクスポート

私はConvertTo-CsvとExport-Csvを試しましたが、失敗しました。問題は私がPowershellを初めて使うことです。これは私の最初の脚本であり、これがどのように機能するのか完全に理解していません。私のスクリプトはおそらくひどく乱雑で非論理的ですが、それはこれまでのところ仕事をしています。

助けてください。ありがとう。あなたがExport-CSVコマンドレットに、各ユーザーおよびパイプそれらのためのオブジェクトを作成する必要があります

$userlist = Get-ADUser -SearchBase "OU=IT,DC=whatever,DC=com,DC=au" -Filter * -Properties * | Select-Object -Property Name,LastLogonTimestamp,SAMAccountName | Sort-Object -Property Name 

$userlist | ForEach-Object { 
    $last = $_.LastLogonTimestamp; 
    $ADName = $_.SAMAccountName; 

    $tstamp = w32tm /ntte $last; 
    if($tstamp.Length -lt "40"){}else 
    { 
     $ADDate = [DateTime]::Parse($tstamp.Split('-')[1]).ToString("dd/MM/yyyy") 
     write-host $ADDate; 
     write-host $ADName; 
    } 
} 

答えて

3

$usersList | %{ 

# current logic 

$user = new-object psobject 
$user | add-member -membertype noteproperty -name LastLogon -value $last 
$user | add-member -membertype noteproperty -name ADName -value $ADName 
$user | add-member -membertype noteproperty -name ADDate -value $ADDate 
$user 
} | export-csv test.csv -notype 

別の構文を対象取り込むために:

$properties = @{"LastLogon" = $last; "ADName" = $ADName; "ADDate" = $ADDate} 
$user = new-object psobject -property $properties 
+0

を私はあなたをunvolontary downvotedしました私はスマートフォンでそれを読んでいて、それに触れたからでしょうか?あなたはそれを編集することができます、私はそれをrevoteできますか? –

+0

@Christian - ああ、私はそれをしました:)とにかく、オブジェクトを作成するための代替構文が追加されました。 – manojlds

+0

いいえ、manojlds、私は今気分が良くなる:-) –

関連する問題