Вам следует изучить различные параметры, которые Powershell предоставляет вам для форматирования результатов, которые вы получаете из конвейера.
Если вы объявите строковую переменную для последующего использования в качестве тела электронной почты, вы получите тот же формат, что и для вывода на консоль. Следующие
$body = Get-ChildItem | Out-String
Вы можете настроить свой результат, добавив Format-Table
CmdLet:
$body = Get-ChildItem | Format-Table -Property Name, Length | Out-String
Ваш скрипт для отправки может выглядеть примерно так
$body = Get-ChildItem | Format-Table -Property Name, Length | Out-String
$SmtpClient = New-Object System.Net.Mail.SmtpClient
$MailMessage = New-Object System.Net.Mail.MailMessage
$SmtpClient.Host = "my.smtp.host.com"
$MailMessage.from = "sender@acme.com"
$MailMessage.To.Add("me@acme.com")
$MailMessage.Subject = “Verzeichnisinhalt”
$MailMessage.IsBodyHtml = $false
$MailMessage.Body = $body
$SmtpClient.Send($MailMessage)