Электронная почта с несколькими вложениями

Я работаю над сценарием PowerShell для службы поддержки для использования при переносе папок userhome с сервера на устройство NAS. Пользователь службы вводит логины в "userhomelist.txt-файл.

моя проблема в том, что я не могу заставить скрипт прикрепить все файлы журнала. К письму прилагается только последний файл журнала. Я думаю, что мне нужно использовать строку для нескольких вложений, но я продолжаю думать, что есть другой способ.

#----- STEP #1 retrieve contents of input file ---#
$INPUTFILEPATH = 'c:tempuserhomelist.txt'

#----- read input file contents ----#
$inputdata = Get-Content $INPUTFILEPATH

#----- Top section of email body ----#
$msgreport = new-object Net.Mail.MailMessage 
$msgreport = "To view log files, go to directory where this PowerShell Script was run from. `r"
$msgreport = $msgreport + "`r`n"

#read in each username
foreach ($username in $inputdata)
{

#----- STEP #2 robocopy files from server to nasdevice location ----#
Start-Process -FilePath robocopy -ArgumentList "serveruserhomes$username nasdeviceuserhomes$username /mir /sec /r:1 /w:1 /tee /NP /Z /log+:userhome-move-$username.log"
$file = "c:tempuserhomeuserhome-move-$username.log"
$msgreport = $msgreport + "$username robocopy has been completed." + "`n"

##----- STEP #3 change file and directory ownership to user ----#
Start-Process -FilePath subinacl -ArgumentList "/subdirectories nasdeviceuserhomes$username*.* /setowner=$username"
$msgreport = $msgreport + "$username file and directory ownership changes have been completed." + "`n"
$msgreport = $msgreport + "`r`n"
}

#----- Email Results ----#
$SmtpClient = new-object system.net.mail.smtpClient
$MailMessage = New-Object system.net.mail.mailmessage 
$SmtpServer = "emailserver.business.com"
$SmtpClient.host = $SmtpServer 
$MailMessage.From = "userhome-migration@business.com"
$MailMessage.To.add("helpdeskn@business.com")
$MailMessage.Subject = "User migrations"
$MailMessage.IsBodyHtml = 0
$MailMessage.Body = $msgreport
$MailMessage.Attachments.Add($file)
$SmtpClient.Send($MailMessage)

1 ответов


Я предлагаю использовать send-mailmessage командлет, если вы находитесь в powershell v2 или v3. У него есть