Ich habe ein Powershell-Skript, das ich geschrieben habe, um den Inhalt eines Ordners zu überprüfen und ob es eine Datei mit einer LastWriteTime älter als 20 Minuten gibt, um mich zu benachrichtigen. Das Problem, das ich habe, ist, wenn ich die Ergebnisse bekomme, dass es alle Dateien im E-Mail-Körper einschließt. Wie würde ich dies schreiben, um nur den neuesten Dateinamen im E-Mail-Text zu erhalten?Powershell Get-ChildItem
$src = 'c:\test'
$sendmail = $false
Get-ChildItem -path $src | ForEach-Object {
#write-host $_.fullname
$dtdiff = New-TimeSpan ($_.LastWriteTime) $(Get-Date)
if ($dtdiff.TotalMinutes -gt 20){
$strbody=$strbody +$_.fullname+ " Last File Modified at " +$_.LastWriteTime +"`r`n"
$sendmail=$true
}
}
#$strbody
if($sendmail -eq $true){
# Email components
$strFromAddress = "[email protected]"
$strToAddress = "[email protected]"
$strMessageSubject = "REPORT"
$strMessageBody = $strbody
$strSendingServer = "smtp.com"
$SMTPPort = "587"
$emailSmtpUser = "[email protected]"
$emailSmtpPass = "test123"
# Email objects
$objSMTPMessage = New-Object System.Net.Mail.MailMessage $strFromAddress, $strToAddress, $strMessageSubject, $strMessageBody
$objSMTPClient = New-Object System.Net.Mail.SMTPClient( $strSendingServer, $SMTPPort)
$objSMTPClient.EnableSsl = $true
$objSMTPClient.Credentials = New-Object System.Net.NetworkCredential($emailSmtpUser , $emailSmtpPass);
$objSMTPClient.Send($objSMTPMessage)
}
was meinst du mit neuesten Dateinamen sagen? – 4c74356b41