Der Code als "HyperV-replicationStatus.ps1" speichern.
# Titel : HyperV-replicationStatus.ps1 # Beschreibung : Dieses Script liest den Status der Replikation unter HyperV aus und versendet dies als Email # Autor : Alex Faes, FSIT AG ([EMAIL="alex.faes@fsit.com"]alex.faes@fsit.com[/EMAIL]) # Datum : 11. November 2014 # Version : v1.0 # Bemerkungen : Siehe Anleitung des Scripts // Dieser Header darf NICHT entfernt werden. ### Bitte editieren START ### $firma = "Firma" $VMSERVER = "hyperVHost1, HyperVHost2" #kann mit "," erweitert werden $to = "[EMAIL="email@domain.ch"]email@domain.ch[/EMAIL]" #Empfänger angeben #$cc = "" # CC angeben wenn nötig und # am anfang entfernen ### Mail Server Settings### $SMTPServer = "mail.gmx.com" $SMTPPort = "25" $Username = "Loginname" $Password = "Passwort" ### Bitte editieren ENDE ### ### formatierungen ### $FormatHtml = "<style>" $FormatHtml = $FormatHtml + "BODY{background-color:white;}" $FormatHtml = $FormatHtml + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}" $FormatHtml = $FormatHtml + "TH{border-width: 1px;padding: 0px;border-style: solid;border-color: black;}" $FormatHtml = $FormatHtml + "TD{border-width: 1px;padding: 0px;border-style: solid;border-color: black;}" $FormatHtml = $FormatHtml + "</style>" ### Nichts ändern ab hier #### $subject = "HyperV Replikations Status von $firma" $VMSTATUS = Get-VMReplication -computername $VMSERVER | select-object lastreplicationtime, vmname, computername,health,replicationhealth, @{Expression={"{0:N0}" -f ((get-date)-($_.lastreplicationtime)).TotalMinutes};Label="Delta (min)"} | Sort-Object -Property LastReplicationTime | convertto-html -head $FormatHtml $body = "$VMSTATUS" $message = New-Object System.Net.Mail.MailMessage $message.subject = $subject $message.body = $body $message.IsBodyHtml = $True $message.to.add($to) #$message.cc.add($cc) $message.from = $username $smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort); $smtp.EnableSSL = $true $smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password); $smtp.send($message) write-host "Mail Sent"
$firma Firmennamen, welcher im Skript angezeigt wird
$VMSERVER Die HyperV Host Server
$to Empfänger Email Adresse
$cc Empfänger Email Adresse
$SMTPServer Ausgehender MailServer (default belassen)
$SMTPport Postausgangsserver Port (default belassen)
$Username SMTP Auth Login (default belassen)
$Password SMTP Auth Passwort (default belassen)
Wie wird es als Script aufgerufen:
Das Skript kann mittels einem Scheduled Task mit folgendem Aufruf gestartet werden:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe SkriptPfad