none
Benötige Hilfe bei einem Test-Connection script RRS feed

  • Întrebare

  • Hi Community,

    ich brauche ein Script das ab start unendlich lange oder bis zum Beenden läuft.
    Es soll mit einem Ping die Erreichbarkeit mehrerer Server prüfen.

    Bei einem Fehler soll der Servername oder die IP mit Datum und Uhrzeit in eine log Datei geschrieben werden.

    Ich bekomme es trotz vielem Googlen nicht hin.
    Bitte euch um Hilfe.

    Grüße


    marți, 19 noiembrie 2019 12:50

Răspunsuri

  • Schau mal hier, da sind massenhaft Skripte zu dem Thema. Wir helfen dir gerne bei Problemen wenn du eines der Scripte noch anpassen willst.

    Lies auch bitte mal hier.

    Grüße, Denniver


    Blog: http://www.bytecookie.de

    Powershell Code Manager: Link
    (u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.

    marți, 19 noiembrie 2019 13:48
    Moderator

Toate mesajele

  • Für sowas würde ich dir eher Nagios, Spiceworks, Solarwinds, Incinga you name it... ans Herz legen.

    Je nach dem, welchen Umfang an Überwachung du brauchst. Mit Nagios kann man z.B. ziemlich schnell eine Verfügbarkeitsüberwachung ausrollen.

    Außer es geht dir um die technische Herausforderung.

    Gruß

    marți, 19 noiembrie 2019 13:12
  • Hi, Danke.

    Ein solches System existiert bereits und funktioniert ohne Probleme.

    Jedoch brauche ich so ein Script für händische kurze Tests.

    marți, 19 noiembrie 2019 13:26
  • Schau mal hier, da sind massenhaft Skripte zu dem Thema. Wir helfen dir gerne bei Problemen wenn du eines der Scripte noch anpassen willst.

    Lies auch bitte mal hier.

    Grüße, Denniver


    Blog: http://www.bytecookie.de

    Powershell Code Manager: Link
    (u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.

    marți, 19 noiembrie 2019 13:48
    Moderator
  • für händische kurze Tests.

    und  "Ping <Servername>  "  reicht da nicht? ...  für händische kurze Tests?  ;-)

    ... unabhängig davon ... was hast Du denn schon probiert und was funktioniert nicht?


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''


    • Editat de BOfH-666 marți, 19 noiembrie 2019 13:51
    marți, 19 noiembrie 2019 13:50
  • Danke für die schnellen Antworten.

    Also.

    Ich habe versucht über ein Test-Connection den Output in eine Log-Datei zu schieben, jedoch habe ich immer nur ein True oder ein False erhalten. Was ja auch logisch ist. Dazu habe ich es warum auch immer nicht hin bekommen, Datum, Uhrzeit und Servername hinzu zu fügen.

    Ich werde mal nach einer geeigneten Vorlage suchen wie es @Denniver Reining vorgeschlagen hat.

    @BOfH-666 Ein einfacher Ping reicht leider nicht aus. Ich möchte das beispielsweise auch mal nachts durch laufen lassen und dann eben in einer Log Datei sehen, welche Maschine, wann nicht erreichbar war.

    Versucht habe ich da schon einiges das ich aus den verschiedensten Google Ergebnissen die ich zusammengeworfen und Editiert habe, jedoch kam nie das raus was ich haben wollte.

    Wir werden sehen was ich finde :)
    Danke euch

    miercuri, 20 noiembrie 2019 09:52
  • Noch'n Tipp: Die Helfer hier helfen, weil sie Spaß dran haben und möchten auch immer gern zeigen, was sie können. Aber sie erwarten auch ein bissl Mitarbeit und Eigeninitiative. Wenn Du also einfach ein paar Zeilen Code zeigst, dann dauert es üblicherweise nicht lange, bis jemand den Code korrigiert oder verbessert oder Dir wenigstens erklärt, wie Du es besser machen kannst. 

    Bisher sieht es so aus, als würdest Du danach fragen, dass Dir jemand ein Script nach Deinen Anforderungen schreibt - das kommt hier üblicherweise gar nicht gut an.  ;-)


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    miercuri, 20 noiembrie 2019 12:02
  • Danke, werde ich beherzigen.

    Das war nur mein erstes richtiges Script. Das ging komplett in die Hose, deshalb habe ich nichts gepostet.
    Hier aber das heraus gesuchte Ergebnis, das einwandfrei funktioniert.

    $ServerName = Get-Content "c:\server.txt"  
      
    while($true)
    {
        foreach ($Server in $ServerName) {  
      
                if (test-Connection -ComputerName $Server -Count 4 -Quiet ) {     
              
                        } else  
                          
                            {"$(Get-Date) $Server ist nicht erreichbar"  >> C:\results.txt
                  
                        }      
                    }
    }

    aus folgendem Beitrag. https://gallery.technet.microsoft.com/Ping-Multiple-Computers-7d13a3aa

    Das wurde leicht angepasst und funktioniert so wie es soll.
    Herzlichen Dank an alle.

    vineri, 6 decembrie 2019 10:50
  • Ui ... da werden sich Deine Netzwerk-Kollegen aber bedanken.  ;-) 

    Darf ich ein paar Änderungen vorschlagen?

    $ServerListe = Get-Content -Path C:\Sample\server.txt
    $ServerLog = 'C:\Sample\ServerLog.csv'
    $Sekunden = 10
    
    while ($true) {
        $ergebnis = foreach ($Computername in $ServerListe) {
            $TimeStamp = Get-Date
            [PSCustomobject]@{
                ComputerName = $ComputerName
                Date         = "{0:dd}.{0:MM}.{0:yyyy}" -f $TimeStamp
                Time         = "{0:HH}:{0:mm}:{0:ss}" -f $TimeStamp
                Online       = Test-Connection -ComputerName $Computername -Count 1 -Quiet
            }
        }
        $Ergebnis | Export-Csv -Path $ServerLog -NoTypeInformation -Append -Delimiter ';'
        Start-Sleep -Seconds $Sekunden
    }

    Es ist empfehlenswert die Variablennamen etwas "sprechender" zu wählen. Bei "$Server" und "$Servername" wäre ich unsicher. Wenn es eine Liste oder ein Array ist, kann man das auch so nennen. Dann liest sich der Code auch leichter. 

    Um den Netzwerkverkehr ein wenig zu reduzieren habe ich mal eine Pause zwischen den Schleifendurchläufen eingebaut. Die kannst Du mit der Variable "$Sekunden" nach Belieben justieren.

    Ich schreibe die Log-Datei im Format CSV. So kannst Du sie in Excel direkt öffnen und nach Belieben Filtern und Sortieren. 

    Schau mal, ob Du davon was verwenden magst.  ;-)


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    • Editat de BOfH-666 vineri, 6 decembrie 2019 14:48
    vineri, 6 decembrie 2019 13:36