Here’s a script I’ve written that can be added as a scheduled task on the SCVMM server to send a daily report to selected people containing all the currently outstanding checkpoints on the Hyper-V hosts.  This is done without having to store any plain text passwords (they are stored but in an encrypted format).  It formats the email as HTML so that it looks a bit prettier.  I could have made the HTML fancier but I wanted to keep the script simple.


$Header = @"
<style>
TABLE {font-family: "
Lucida Sans Unicode", "Lucida Grande", sans-serif; border: 1px solid #FFFFFF; background-color: #FFFFFF; width: 750px; height: 100px; text-align: center; border-collapse: collapse;}
TH {background: #FF0000; border-bottom: 5px solid #FFFFFF; }
TD { border: 1px solid #FFFFFF;}
tr:nth-child(odd) {background: #D0CFD1; padding: 3px 2px; }
</style>
"
@

$Transpath = "C:\temp\logs\snapshot_report.log"
$DateTime = (Get-Date).ToString('dd/MM/yy hh:mm:ss')
$password = cat C:\scripts\securestring.txt | ConvertTo-SecureString
$mycred = New-Object System.Management.Automation.PSCredential ("username",$password)
$Date = Get-Date -Format "dd-MM-yyyy"
$Subject = "Daily Snapshot Report from $env:computername for $Date"
$Greeting = "Good morning, please find below the daily snapshot report.  For any queries on this report please contact Tom K `(info`@cloudwyse.co.uk`)"
$ReportText = Get-SCVirtualMachine | Get-VMCheckpoint | Select VM,Name,Description,AddedTime | ConvertTo-HTML -Head $Header -Body "$Greeting $_ " | Out-String
$Recipients = 'email1@cloudwyse.co.uk','email2@cloudwyse.co.uk','email3@cloudwyse.co.uk'
Start-Transcript -Path "$transpath" -Append
Write-Host "Started running script on $env:computername at $DateTime"
Send-MailMessage `
-SmtpServer smtpserver.contoso.com `
-Credential $mycred `
-From 'reports@cloudwyse.co.uk' `
-To $Recipients `
-Subject $Subject `
-Body $ReportText -BodyAsHtml `
-Port 587 -UseSsl

Write-Host "Finished running script on $env:computername at $DateTime"
Stop-Transcript

Follow the instructions here to create the securestring.txt