2017-01-30 2 views
0

Как указано в заголовке, я пытаюсь автоматизировать наши обновления сертификатов в нашей организации. Сейчас все это отслеживается в электронной таблице Excel. Прямо сейчас у меня есть сценарий отправки одной электронной почты в нашу команду, говорящей о том, что истекает. Я хочу, чтобы он отправил каждой отдельной команде свои сертификаты, срок действия которых истекает. Сценарий у меня в настоящее время находится ниже:Пытается создать сценарий для разбора CSV-файла и отправить электронное письмо сторонам, ответственным за продление сертификата.

Import-Csv -path D:\Scripts\Get-ExpiringCertificates\Certificates.csv | 
    Where-Object {$_.Status -like "Expires*"} | 
    Export-Csv D:\Scripts\Get-ExpiringCertificates\ExpiringCerts.csv 
Send-MailMessage -From "[email protected]" -To [email protected] -Subject "Expiring Certs" -SmtpServer "mailint.edmc.edu" -Attachments D:\Scripts\Get-ExpiringCertificates\ExpiringCerts.csv -Body "Please see attachment for the list of Certificates Expiring within the next 90 days." 

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

Пример CSV используется:

CSV screenshot

ответ

1

Вместо экспорт импортируемых данных CSV обратно в файл группу Уходящих сертификатов от ответственной стороны, посмотреть их почтовый адрес, а затем отправить сгруппированным информацию ответственной команде.

Import-Csv -path D:\Scripts\Get-ExpiringCertificates\Certificates.csv | 
    Where-Object {$_.Status -like "Expires*"} | 
    Group-Object 'Responsible Party' | 
    ForEach-Object { 
     $responsibleParty = $_.Name 
     $recipient = ... # look up mail address for $responsibleParty 
     $data = $_.Group | ConvertTo-Csv -NoType 
     Send-MailMessage -To $recipient -Body $data ... 
    } 
Смежные вопросы