Результат сценария Powershell, отправленного по электронной почте

В результате запуска приведенного ниже скрипта он возвращает следующее:

введите здесь описание изображения

Как я могу получить этот результат по электронной почте? Я не уверен, как получить результат в параметр, который я могу передать в тело сценария электронной почты:

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/send-mailmessage?view=powershell-6

$azPath = "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy\"

Set-Location $azPath

$StorageAccountName = "#"

$StorageAccountKey = "#"

$ContainerName = "#"

$SourceFolder = "#"

$DestURL = "https://$StorageAccountName.blob.core.windows.net/$ContainerName"

$Result = .\AzCopy.exe /source:$SourceFolder /dest:$DestURL /BlobType:block /destkey:$StorageAccountKey /Y /S /XO

$Result

person Philip    schedule 30.06.2019    source источник
comment
Вы можете использовать ConvertTo -Html для вашего $result и используйте результат этого для параметра -Body и укажите переключатель -BodyAsHtml.   -  person Olaf    schedule 30.06.2019
comment
Спасибо @Olaf - не могли бы вы использовать это как ответ с кодом?   -  person Philip    schedule 30.06.2019


Ответы (1)


Вы можете либо сохранить результат в файле, либо отправить его в виде вложения:

$Result | Out-File Result.txt
Send-MailMessage -From 'User01 <[email protected]>' -To 'User02 <[email protected]>' -Subject 'Sending the Attachment' -Body "Forgot to send the attachment. Sending now." -Attachments .\Result.txt -SmtpServer 'smtp.fabrikam.com'

Или отправьте содержимое $Result (=string[]) в виде строки в -Body:

$body = $Result -join '`n' # Join result to a single string with line breaks
Send-MailMessage -From 'User01 <[email protected]>' -To 'User02 <[email protected]>' -Subject 'Sending the Attachment' -Body $body -SmtpServer 'smtp.fabrikam.com'

Или (как указано в комментарии @Olfa) преобразовать его в HTML и добавить переключатель -BodyAsHtml:

$body = $Result | ConvertTo-Html
Send-MailMessage -From 'User01 <[email protected]>' -To 'User02 <[email protected]>' -Subject 'Sending the Attachment' -Body $body -SmtpServer 'smtp.fabrikam.com' -BodyAsHtml
person Moerwald    schedule 30.06.2019
comment
Ошибка Неожиданный токен 'n #' в выражении или операторе. с вашим вторым вариантом. Могли бы вы, пожалуйста, посоветовать? - person Philip; 04.07.2019
comment
Также получите: CovertTo-Html : термин «CovertTo-Html» не распознается как имя командлета, функции, файла сценария или исполняемой программы. - person Philip; 04.07.2019
comment
Обновлен мой ответ - person Moerwald; 04.07.2019
comment
Спасибо, очень признателен. Однако получите следующую ошибку: Send-MailMessage: невозможно преобразовать «System.Object []» в тип «System.String», требуемый параметром «Указанный метод не поддерживается. - person Philip; 04.07.2019
comment
Какой вариант вы используете? - person Moerwald; 04.07.2019
comment
Извините, это конвертация в HTML. Я использую азкопи 8.1 - person Philip; 04.07.2019