Отправка вывода по электронной почте от Powershell - PullRequest
0 голосов
/ 22 мая 2018

См. Прилагаемую фотографию (ссылку) «Вывод» в PowerShell и Outlook.

Я пытаюсь отправить вывод по электронной почте, но у меня возникают проблемы с получением сценария для помещения вывода в текст сообщения.электронная почта.Вместо того, чтобы захватывать имена сервисов и даты истечения срока их действия между желаемым порогом (70 дней), он захватывает все в CSV (например, см. Сервис, срок действия которого истекает в 2022 году) и помещает это в тело письма.

Мой вопрос: как мне отправить по электронной почте только ту информацию, которую я извлек в PowerShell (те, которые попадают между указанной пороговой датой)?

Несколько новее в написании сценариев, спасибо!:)

$now=get-date
$cert = Import-Csv C:\Users\userID\Desktop\Certificate_CSV2.csv
$threshold = 70  
$deadline = (Get-Date).AddDays($threshold) 
$cert | Select-Object "Service Name", "Certificate Expiration Date" | Where-Object {$_."Certificate Expiration Date" -as [datetime] -le $deadline} 

Send-mailMessage -to "SentTo@email.com" -subject "test message 8" -from "SentTo@email.com" -body ($cert | Out-String) -SmtpServer pobox.email.com

1 Ответ

0 голосов
/ 22 мая 2018

Вы просто распечатываете сертификат с фильтром, а не применяете его обратно к сертификату.Чтобы исправить, просто установите $ cert равным отфильтрованной версии самого себя.

$cert = $cert | Select-Object "Service Name", "Certificate Expiration Date" | Where-Object {$_."Certificate Expiration Date" -as [datetime] -le $deadline} 
...