====== Envoyer un mail lors de l'arrêt d'une VM ====== --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/06/12 12:19// Lorsque des utilisateurs avec des droits d'administration travaillent sur un serveur, il peut arriver que certains confondent ''Se déconnecter du serveur'' avec ''Arrêter le serveur''. Voici un petit script que j'avais écris, il y a quelques années, afin d'avertir des responsables lorsque des VM venait à être s'éteindre. # Script de notification d'arrêt de VM # Extraction des informations du journal d'évènement Get-WinEvent -Path 'C:\Windows\System32\winevt\Logs\Microsoft-Windows-Hyper-V-Worker-Admin.evtx' -MaxEvents 10 | Where-Object {$_.ID -eq 18508} | Export-CSV c:\Scripts\ID18508.csv -Encoding UTF8 -UseCulture # Test de la présence du fichier crypté contenant le mot de passe pour envoi mail sinon création If (-not (Test-Path ".\mdp.securestring")) { Read-Host -AsSecureString | ConvertFrom-SecureString | Out-File -FilePath mdp.securestring } # Envoi du mail de notification $Codage = [System.Text.Encoding]::UTF8 $ServeurSMTP = server.mail.tld $SMTPPort = 25 $AuthSMTP = "admin@mail.tld" $MDPCryptFile = ".\mdp.securestring" $SecureStringPassword = Get-Content -Path $MDPCryptFile | ConvertTo-SecureString $EmailCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $AuthSMTP,$SecureStringPassword $Destinataire = @("responsable1@mail.tld","responsable2@mail.tld") $Expediteur = "admin@mail.tld" $Sujet = "Notification d'arrêt d'une machine virtuelle" $Body = "Notification automatique d'arrêt d'une VM. Voir document joint." $PieceJointe = ".\ID18508.csv" Send-MailMessage -From $Expediteur -To $Destinataire -Subject $Sujet -Body $Body -SmtpServer $ServeurSMTP -Port $SMTPPort -Credential $EmailCredential -Attachments $PieceJointe -Encoding $Codage # Suppression du CSV Remove-Item -Path .\ID18508.csv -Force Il est nécessaire de modifier le script avec les informations de messagerie voulues et de l'exécuter une première fois afin d'enregistrer et de chiffrer le mot de passe de messagerie. Il ne reste plus qu'à le lier à une tâche planifiée, s'exécutant à chaque détection de l'évènement 18508. ~~DISCUSSION~~