2017-11-01 2 views
-3

私はここで何か間違っている必要があります、結果は空です、私はPsObjectでhtmlを変換しようとしました。新しいPsObjectを作成するいくつかの*穴がこの回答をマークしました

Foreach($sender in $senders){ 

    $users=Get-TransportServer|Get-MessageTrackingLog -Start (Get-Date).AddHours(-4) -ResultSize Unlimited -Sender $sender.PrimarySmtpAddress |?{$_.Recipients -notlike "*@domain.us" -and $_.RecipientCount -eq "1" -and $_.RecipientStatus -notlike "*,*" -and $_.eventid -eq 'RECEIVE' } 
    } 
    $users | % { 
    $t = New-Object PSObject -Property @{ 
     Sender = $_.Sender 
     Receiver = $_.Recipients 
     Messagesubject=$_.Messagesubject 
     RecipientCount =$_.RecipientCount 
     TimeStamp=$_.TimeStamp 
     } 
     $outtbl += $t 
    } 
    $outtbl 
+0

でしたか?あなたの質問は明確ではありません。それは働いていない理由 – TheIncorrigible1

+0

は確かに言うことはできませんが、フロントまで受信イベント以外のすべてをフィルタリングするには、Get-MessageTrackinglogの-EventIDパラメータを使用してオフにたくさんの方が良いと思います、イベントを受信した後、あなただけなら。 – mjolinor

答えて

0

これはそれらの ``は、Get-関数が定義されてい

foreach ($sender in $senders) { 
    Get-TransportServer | 
    Get-MessageTrackingLog -Start (Get-Date).AddHours(-4) -ResultSize Unlimited -Sender $sender.PrimarySmtpAddress | 
     Where-Object { ($_.Recipients -notlike "*@domain.us") -and 
     ($_.RecipientCount -eq 1) -and 
     ($_.RecipientStatus -notlike "*,*") -and 
     ($_.eventid -eq 'RECEIVE') } | ForEach-Object { 
     $results += New-Object PSObject -Property @{ 
     Sender = $_.Sender 
     Receiver = $_.Recipients 
     MessageSubject = $_.MessageSubject 
     RecipientCount = $_.RecipientCount 
     TimeStamp = $_.TimeStamp 
     } 
    } 


    } 
$results| ConvertTo-Html -Head $style| Out-File $reportpath 
+0

'$ results'変数は必要ありません。 'foreach'ループをスクリプトブロックに囲み、'& 'でそれを実行し、' ConvertTo-Html'にパイプすることができます。 –

1

は、なぜあなたは$users$outtbl、または$tが必要なのでしょうか?

foreach ($sender in $senders) { 
    Get-TransportServer | 
    Get-MessageTrackingLog -Start (Get-Date).AddHours(-4) -ResultSize Unlimited -Sender $sender.PrimarySmtpAddress | 
     Where-Object { ($_.Recipients -notlike "*@domain.us") -and 
     ($_.RecipientCount -eq 1) -and 
     ($_.RecipientStatus -notlike "*,*") -and 
     ($_.eventid -eq 'RECEIVE') } | ForEach-Object { 
     [PSCustomObject] @{ 
     Sender = $_.Sender 
     Receipients = $_.Recipients 
     MessageSubject = $_.MessageSubject 
     RecipientCount = $_.RecipientCount 
     TimeStamp = $_.TimeStamp 
     } 
    } 
} 

(テストされていない - 。これは、不要な変数を排除し、より明確なコードを書く方法のほんの一例です)

それは[PSCustomObject]を使用しているため、このコードサンプルは、PowerShellの3.0以降が必要です。

+1

PSCustomObjectがなぜ必要なのか不思議です。必要なのは、Selectとそのプロパティのリストだけでした。 ;真 - – mjolinor

+0

ねえ法案は、これは私がHTMLを必要と私は選択してから、ファイルをするときには、追加必要とし、複数のヘッダ – DisplayName

+0

Becuaseを使用してから私を停止するものですGet-TransportServerから返されたオブジェクトからプロパティが必要かどうかはわかりませんでした。 – DisplayName

関連する問題