我尝试从数组中构建表,然后将其放入电子邮件中。我能够让表格显示数组中的第一个项目,但无法获得要列出的其余项目。我觉得我很接近,关于我可能缺少的任何想法。
$global:Report = "C:\TEMP\Scripts\PowerShell\ReadExcelFiles\File.csv"
$UViolation = import-csv $global:Report -Delimiter ' ' | Where-Object {$_.Rules -eq "TESTTEXTINFILE"}
$UserViolationDetails = New-Object System.Collections.ArrayList
foreach ($item in $UViolation){
if ($item.Destination -notcontains "HP ") {
$UserViolationDetails += ,@($item.'User Name', $item.'Occurred (Endpoint)',$item.'IP Address',$item.'Computer Name',$item.Destination)
}
}
$UserID = "USERID01"
$events = $UserViolationDetails -match $UserID
$count = 0
foreach ($line in $events){
$count++
$table = @( @{'User ID'=$line[0]; 'DateTime'=$line[1]})
}
$count
$table.ForEach({[PSCustomObject]$_}) | Format-Table -AutoSize
$ol = New-Object -comObject Outlook.Application
$mail = $ol.CreateItem(0)
$mail.To = "$global:UserReportsToEmail"
$mail.cc = "EMAIL@DOMAIN.com"
$mail.Subject = "mySubject"
$mail.HTMLBody =
"TESTING STUFFFF!
Text on a new line $UserID
$table"
$inspector = $mail.GetInspector
$inspector.Display()