Я пытаюсь получить статус задач расписания задач на электронную почту, но всегда получаю пустое тело в электронном письме. Кто-нибудь может помочь?
Тело сообщения - $ body, а результаты для вставки - $ tskfail и $ tskok.
enter code here
$Server=$env:COMPUTERNAME
$TskFAIL=Get-ScheduledTask | Where State -ne "Disabled" | Get-ScheduledTaskInfo |Where taskpath -EQ "\" | Where LastTaskResult -GT 1 | Select TaskName,TaskPath,LastRunTime, LastTaskResult,NextRunTime,NumberofMissedRuns
$Tskok=Get-ScheduledTask | Where State -ne "Disabled" | Get-ScheduledTaskInfo |Where taskpath -EQ "\" | Where LastTaskResult -eq 0 | Select TaskName,TaskPath,LastRunTime, LastTaskResult,NextRunTime,NumberofMissedRuns
#Envio de Email
$msg = new-object Net.Mail.MailMessage
$SMTPClient = new-object Net.Mail.SmtpClient($smtpServer, $smtpPort)
$SMTPClient.EnableSsl= $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($usr, $pass);
$msg.From = $usr
foreach ($email in $destEmail){
$msg.To.Add($email)}
$msg.Subject = "Relatório de Tarefas "+$Server
$body = "Tarefas que tiveram Falha: "+ "`r" + $tskfail
$body=$body + "`r" + "Tarefas que executaram SEM FALHA: " + "`r" + $Tskok
$date=get-date -format F
$body= $body + $date
$msg.Body = $body
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { return $true }
$SMTPClient.Send($msg)
Start-Sleep 1





Я нашел решение!
нужно поставить | out-string в и запроса, поэтому:
$TskFAIL=Get-ScheduledTask | Where State -ne "Disabled" | Get-ScheduledTaskInfo |Where taskpath -EQ "\" | Where LastTaskResult -GT 1 | Select TaskName,TaskPath,LastRunTime, LastTaskResult,NextRunTime,NumberofMissedRuns |Out-String
$Tskok=Get-ScheduledTask | Where State -ne "Disabled" | Get-ScheduledTaskInfo |Where taskpath -EQ "\" | Where LastTaskResult -eq 0 | Select TaskName,TaskPath,LastRunTime, LastTaskResult,NextRunTime,NumberofMissedRuns |Out-String