crashzero
Goto Top

Internetprüfung mit einmaligem Ausdruck

Hallo,

ich bräuchte ein Script das in einer Schleife prüft ob z.B. Google antwortet.
Wenn Google nicht antwortet soll er innerhalb dieser Prüfungsschleife EINMALIG einen Ausdruck bringen.
Wenn Google dann wieder antwortet soll er EINMALIG einen anderen Ausdruck bringen und im Script weiterlaufen.

Sollange also Google nicht antwortet bleibt er in der Prüfschleife und druckt ein Dokument einmalig aus.

Wenn er die Schleife verläßt weil Google wieder antwortet soll er einmal ein anderes Dokument drucken und dann die ganze Prüfung verlassen und die nachfolgenden Zeilen ablaufen ...

z.B. (Funktioniert nicht, nur als Beispiel)

$izaehler="1"  
$keininternet="Keine Antwort von 8.8.8.8 -  ?"  
$internetausfalldatum = Get-Date
while ($true){
    if (Test-Connection -ComputerName 8.8.8.8 -Count 1 -Quiet){
         $izaehler="2"  
         break         
    }else{
         Start-Sleep -s 5
         if ( $izaehler="2" )  
         {
            Start-Process –FilePath “c:\dicomserver1\packagehtml\indexfehler.pdf” –Verb Print -PassThru -WindowStyle Hidden | %{sleep 2;$_} | kill
            $izaehler="3"  
         }
         write-host $izaehler
         write-Host "Ausfall : "+ $internetausfalldatum  
   }
}


# Start-Process –FilePath “c:\dicomserver1\packagehtml\indexfehler.pdf” –Verb Print -PassThru -WindowStyle Hidden | %{sleep 2;$_} | kill 
############################### Google ok, dann weiter #####################################
if ( $izaehler="3" )  
         {
            Start-Process –FilePath “c:\dicomserver1\packagehtml\indexkeinfehler.pdf” –Verb Print -PassThru -WindowStyle Hidden | %{sleep 2;$_} | kill
            $izaehler="4"  
         }

Ich benötige halt blöderweise EINEN Ausdruck wenn Google nicht geht und einen wenn Google geht wobeo er in der Prüschleife diesen nur einmal ausdrucken soll.

Ist mit sicherheit janz einbfach aber irgendwie komme ich nicht drauf.

Content-ID: 23391229998

Url: https://administrator.de/contentid/23391229998

Ausgedruckt am: 17.11.2024 um 03:11 Uhr

em-pie
Lösung em-pie 21.08.2023 um 13:36:01 Uhr
Goto Top
Moin,

$global:printed = $false
...
 if ( $izaehler="2" )    
         {
            if(-not $printed) {
             Start-Process –FilePath “c:\dicomserver1\packagehtml\indexfehler.pdf” –Verb Print -PassThru -WindowStyle Hidden | %{sleep 2;$_} | kill

              $printed = $true
            }
            $izaehler="3"  
         }

So ggf.?
Crashzero
Crashzero 21.08.2023 um 14:17:42 Uhr
Goto Top
Moin,

thx, manchmal steht man auf dem Schlauch.

Funktioniert.
Celiko
Celiko 21.08.2023 aktualisiert um 16:31:43 Uhr
Goto Top
Moin,

mit Test-Connection hatte ich hier und da gelegentlich Probleme.
PowerShell: Funktion: Ping 1x, warte auf Ergebnis
Das Problem könntest du bei deinem Script evtl. auch haben?

Fand die Empfehlung vom gelöschten User sehr elegant.
Antwort ist dann im Objekt-Property "Status" hinterlegt. Kann soweit ich mich erinnere nur "Success" und "Failure" sein.

VG
Crashzero
Crashzero 21.08.2023 um 16:52:55 Uhr
Goto Top
Hy,

bisher habe ich keinerlei Probleme aber danke für die Info.
Im Moment klappt es hervorragend, Internetprüfung,
1. Dienst Dicom-Retreive - Dienst aus
2. wenn kein Internet "Einmaliger Statusberichtausdruck" -> Weiter prüfen ob Internet vorhanden ohne weiteren Ausdruck bis Internet wieder geht -> Statusbericht kein Fehler mehr einmalig drucken
3. Dicomn-Retreive - Dienst an
-> weiter im Script

Bisher alles fehlerfrei