Скрипт может запускаться по расписанию и отсылать отчет администратору по e-mail для снапшотов старше определенного возраста. В данном случае 7 дней.
$smtpServer = "smtpserver"
$MailFrom = "me@domain.com"
$MailTo = "me@domain.com"
$VISRV = "virtualcenterserver"
function SnapMail ($Mailto, $SnapshotInfo)
{
$msg = new-object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$msg.From = $MailFrom
$msg.To.Add($Mailto)
$msg.Subject = "Snapshot Reminder"
$MailText = "This is a reminder email of all the open snaphots greater than 7 days old:"
$MailText += ($SnapshotInfo | Out-String)
$msg.Body = $MailText
$smtp.Send($msg)
}
Connect-VIServer $VISRV
$SnapshotInfo = Get-VM | Get-Snapshot | `
where { $_.Name.Length -gt 0 -and $_.Created -lt ((Get-Date).AddDays(-7))} | `
Select VM,Name,Description,Created | Sort Created
SnapMail $mailto $SnapshotInfo
В данном случае скрипт подключится к vCenter с правами текущего аккаунта. Однако в случае с мультидоменной структурой или с standalone хостами, не интегрированными с AD для полностью автматического режима придется указать логина/пароль непосредственно в скрипте.
$VIUsr = "Administrator" $VIPass = "secretpass" Connect-VIServer $VISRV -User $VIUsr -Password $VIPass
5 коммент.: