Jump to content
Mario-HS

Script für HyperV-Replica Überwachung

Recommended Posts

vor 57 Minuten schrieb Mario-HS:

Ich habe extra "bbbbb" in unseren Mailserver angelegt, der kein SSL benötigt aber das Ergebnis ist folgendermaßen

Was genau hast Du gemacht? Steht die absendende IP-Adresse im richtigen Empfangsconnector? Falls ja, wie genau ist der Connector konfiguriert?

Share this post


Link to post
Share on other sites

Hallo Sunny61,

 

du Sprichst vermutlich von ein MS-Exchange.

Wir haben ein Kerio MX und "bbbbb" ist ein Benutzer, denn wir extra für Meldungen von fehlerhafte backups, Warnmeldungen etc angelegt haben und das läuft alles über unseren MX.

 

Beantwortet das deine Frage ?

Share this post


Link to post
Share on other sites

Du siehst, solche Infos gehören gleich immer mit in dei Frage, dann spart man sich solche Postings. ;)

 

Jetzt musst Du feststellen, ob Du von dem Client/Server aus, von dem aus Du das schickst, auch über Port 25 auf den Mailserver zugreifen darfst. Firewall ausgehend vom Client/Server zum Mailserver eingehend. Die Arbeit kann dir niemand abnehmen.

Share this post


Link to post
Share on other sites
vor 2 Stunden schrieb Mario-HS:

Ja das ist meine nächste anlaufstelle, ich wollte nur vorher abklären das, dass skript soweit richtig ist.

Probiert hab ich es nicht, evtl. gibt es ja doch noch eine andere Fehlermeldung wenn der Server das Mail annimmt.

Share this post


Link to post
Share on other sites

Hier noch mal der Tipp, den Code etwas einfacher lesbar zu machen ... 

$CredPassword = ConvertTo-SecureString "aaaaa" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential "bbbbb", $CredPassword

$SenMailParams = @{
    To         = '1234@5678.de'
    Subject    = 'HyperV-Replica Alarm'
    Body       = Get-Content $Info_Datei | Out-String
    SmtpServer = 'ddddd' 
    From       = 'Admin@ccccc' 
    Credential = $cred
}

Send-MailMessage  @SenMailParams

Der Code macht das Gleiche wie Dein Code ... es ist, wie ich glaube, nur einfacher zu lesen. Der SMTP-Port ist im Standard sowieso 25. Den musst Du nur angeben, wenn er NICHT 25 ist.

 

Kannst Du diesen Schnipsel denn von dem Rechner aus erfolgreich ausführen, von dem das Script laufen soll?

Edited by BOfH_666

Share this post


Link to post
Share on other sites

Ich würde ja mit Telnet anfangen und schauen, ob ich vom Server ein EHLO bekomme... Ohne das ist alles weitere zum Scheitern verurteilt.

  • Like 1

Share this post


Link to post
Share on other sites

Es läuft :grins2: der fehler war

Zitat

$CredPassword = ConvertTo-SecureString "aaaaa" -AsPlainText -Force

das Passwort hat Sonderzeichen unter anderen ein $ :lool: mit 'aaaaa' läuft es

Share this post


Link to post
Share on other sites

Dann ersetz die Doppelten Anführungszeichen durch einfache. Innerhalb doppelter Anführungszeichen werden Variablen ausgewertet und $ zeigt nunmal den Beginn einer Variable an. 

Share this post


Link to post
Share on other sites

Zitat von ganz weit oben: $CredPassword = ConvertTo-SecureString "_____" -AsPlainText -Force

Mit nur Unterstrichen hätte es dann auch funktioniert. Schmeiß die Klartextkennwörter aus dem Skript raus und autorisiere die IP des Systems zum Relay-Versenden...

  • Like 2

Share this post


Link to post
Share on other sites

Moin ihr lieben, ich bräuchte nochmal gebaltes Wissen :lool:

 

Ich habe das Problem das mein script nur Mails abschicken soll wenn der "Test-Path" nicht false ist.

Am script-start lösche ich die Datei die ich bei dem Test-Path abfrage falls die im vorigen durchlauf hängen geblieben ist.

in der for-schleife prüfe ich ob die VM-replikation auf Warnung oder Kritisch steht und nur dann wird die Datei erzeugt die benötigt wird damit Test-Path "true" ist.

Aber aus einem grund denn ich nicht zu sehen/wissen scheine wird immer eine Mail abgeschickt aber der Mailbody der in der for-Schleife erzeugt wird fehlt also ist doch die Test-Path auch nicht erfüllt.

 

Wäre super wenn Ihr mir sagen könnt was und wo da der Fehler ist.

 

Zitat

$Pruefe_HyperV_Replica = Get-VMReplication | select Name,Health,State

$Info_Datei = "C:\Powershell\HyperV Infodatei.txt"
$Log_Datei = "C:\Powershell\HV Logdatei.txt"

$Datum = Get-Date
$VMReplication = Get-VMReplication | select Name,Health,State

##Authentifizierung für Mailserver Anmeldung
$Cred_Password = ConvertTo-SecureString "__________" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential "__________", $Cred_Password

$MailBetreff_Name = (Get-WmiObject Win32_ComputerSystem).Name
$MailBetreff_Domain = (Get-WmiObject Win32_ComputerSystem).Domain

$Datum | Out-File $Log_Datei -append

##Skript Start
 Remove-Item -Path $Info_Datei
 foreach ($vm in $Pruefe_HyperV_Replica)
  {
   $name = $vm.Name
   if ($vm.Health -Contains "Normal" -and $vm.State -Contains "Replicating")
    {
     "$name  -  Alles OK!" | Out-File $Log_Datei -append
    }
   elseif ($vm.Health -eq "Warning") # <-- Schleife für Replikationen mit dem Status Warnung!
    {
     New-Item -Path $Info_Datei
     $Serverbezeichnung = "Der Replikationstatus von Server: $name auf $MailBetreff_Name@$MailBetreff_Domain ist auf WARNUNG gewechselt!" | Out-File $Info_Datei -append
     GCI -Path "D:\VM\$name\Virtual Hard Disks" -Recurse -Force | Out-File $Info_Datei -append
     "$name  -  Replikation meldet Warnung!" | Out-File $Log_Datei -append
    }
   elseif ($vm.Health -eq "Critical") # <-- Schleife für Replikationen mit dem Status Kritisch!
    {
     New-Item -Path $Info_Datei
     $Serverbezeichnung = "Der Replikationstatus von Server: $name auf $MailBetreff_Name@$MailBetreff_Domain ist auf KRITISCH gewechselt!" | Out-File $Info_Datei -append
     GCI -Path "D:\VM\$name\Virtual Hard Disks" -Recurse -Force | Out-File $Info_Datei -append
     "$name  -  Kritischer Replikationsstatus!" | Out-File $Log_Datei -append
    }
   }
   $Pruefe_Info_Datei = Test-Path "C:\Powershell\HyperV Infodatei.txt"
   if ($Pruefe_Info_Datei = "True")
    {
     Get-VMReplication | Out-File $Info_Datei -append
     Get-VM -ComputerName Server-HV | Where-Object {$_.State -eq 'OffCritical'}
     Get-PSDrive -PSProvider FileSystem | Out-File $Info_Datei -append
## Einstellungen zum Sender der Mail
     $Mail_Absender = "__________"
     $Mail_Empfaenger = "__________"
     $Mail_Betreff = "HyperV-Replica Alarm"
     $Mail_Server = "__________"
     $Mail_Kopie = "__________"

     $SenMailParams = @{

      To = '__________'

 #   Cc = '__________'

      Subject = 'HyperV-Replica Alarm'

      Body = Get-Content $Info_Datei | Out-String

      SmtpServer = '__________'

      From = '__________'

 #   Port = '587'

      Credential = $cred

      }

     Send-MailMessage @SenMailParams
    }
   elseif ($Pruefe_Info_Datei = "False")
    {
     Write-Host "Alles OK!"
    }
"     " | Out-File $Log_Datei -append
" ----------------------------------------" | Out-File $Log_Datei -append

 

Edited by Mario-HS

Share this post


Link to post
Share on other sites
$Pruefe_Info_Datei = Test-Path "C:\Powershell\HyperV Infodatei.txt"
if ($Pruefe_Info_Datei = "True") {

Das sieht sehr komisch aus ... normalerweise sieht sowas so aus ...

if (Test-Path "C:\Powershell\HyperV Infodatei.txt") {

... grad noch mehr gesehen ...

elseif ($Pruefe_Info_Datei = "False")

Das Gleichheitszeichen ist eine Zuweisung in Powershell, keine Prüfung auf Gleichheit ... die machst Du mit -eq. Die boolschen Werte sind auch "$true" und "$false" und nicht "true" und "false". Und wenn eine Variable einen boolschen Wert enthält, kannst die so auf $true prüfen:

 

if ($Pruefe_Info_Datei)

... und so auf $false:

if (-not $Pruefe_Info_Datei)

 

Edited by BOfH_666

Share this post


Link to post
Share on other sites

Olaf ist hier immer morgens unterwegs, das läßt ja unsereins arbeitender Bevölkerung kaum Chancen auf hilfreiche Beiträge :-) Aber ja: "=" ist eine Zuweisung, die immer $true liefert. Und "True" ist nur ein String, kein Boolean (wahr/falsch). $False entspricht 0/$null/undefined, $true ist alles -ne 0 oder defined.

Share this post


Link to post
Share on other sites
vor 54 Minuten schrieb daabm:

Olaf ist hier immer morgens unterwegs, ...

Eigentlich bin ich eher der Spätaufsteher, aber ich helfe auch schon mal während meiner Arbeitszeit, wenn zwischendurch Zeit ist. ;-) 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Werbepartner:



×
×
  • Create New...