У меня есть текущий сценарий, который должен войти в vsphere, получить все снимки, сделанные более недели назад, и отправить результаты по электронной почте.
Connect-ViServer server
$weekOldSnapshots = (Get-Date).AddDays(-7)
$smtpSrv = "name"
$from = "email"
$to = "email"
$subject = "Snapshot Report"
$body = Get-Snapshot -VM $_ | foreach-object { if($_.Created -gt $weekOldSnapshots){ Select Name, VM, SizeMB}}
$message = new-object Net.Mail.MailMessage($from, $to, $subject, $body)
$smtp = new-object Net.Mail.SMTPclient($smtpSrv)
$smtp.send($message)
Однако когда я запускаю это, я получаю следующую ошибку:
Отчет Алана Ренуфа vCheck сделает это и многое другое за вас. https://github.com/alanrenouf/vCheck-vSphere
Догадаться. Для тех, кто может быть заинтересован в использовании такого фрагмента кода в будущем:
Connect-ViServer server
$body = Get-Folder -name vm | Get-VM | Get-Snapshot | Select Name, VM, SizeMb, Created | Out-String
send-mailmessage -From "myemail.com" -To "myemail.com" -SmtpServer "myserver.com" -Body