Powershell Test-Connection
Hallo zusammen,
ich habe eine Powershell Skript gebastelt welches bei der Windows Anmeldung ausgeführt wird.
Das Skript soll nur ausgeführt werden, wenn entsprechende Server vom Client aus erreichbar sind.
Dies wollte ich mit "Test Connection" einbauen.
Wie kann ich diese Test Connection in eine Schleife einbauen?
IF Test-Connection ok then Skript starten else stop
Danke für eure Hilfe!
ich habe eine Powershell Skript gebastelt welches bei der Windows Anmeldung ausgeführt wird.
Das Skript soll nur ausgeführt werden, wenn entsprechende Server vom Client aus erreichbar sind.
Dies wollte ich mit "Test Connection" einbauen.
Test-Connection server1, server -Count 2
Wie kann ich diese Test Connection in eine Schleife einbauen?
IF Test-Connection ok then Skript starten else stop
Danke für eure Hilfe!
Please also mark the comments that contributed to the solution of the article
Content-ID: 617238
Url: https://administrator.de/contentid/617238
Printed on: September 12, 2024 at 16:09 o'clock
7 Comments
Latest comment
Moin,
So sollte es gehen. Ich würde aber überlegen, das in eine Do-While-Schleife zu legen, bis es klappt. Irgenwie so:
hth
Erik
try {
Test-Connection server1, server -Count 2 -ErrorAction Continue
# Do whatever you want
}
catch {
# What happens if it doesn't work.
}
finally {
# What happens anyway.
}
So sollte es gehen. Ich würde aber überlegen, das in eine Do-While-Schleife zu legen, bis es klappt. Irgenwie so:
do {
# Hier könnte man z. B. in ein Log schreiben, dass die Verbindung getestet wird und wann.
}
until($(Test-Connection server1, server -Count 2))
# Und hier der Rest des Skripts.
hth
Erik
Moin
davor setzen
Der Parameter -Quiet gibt dir "True oder False zurück. durch das ! bedeutet die while-Schleife:
Solange Test-Connection false ist, wird die Anweisung zwischen { und } ausgeführt. Da steht aber nichts drin, also passiert auch nichts. Hier könntest du ggf. ein Logging einbauen, dass die Verbindung nicht da war. Wenn der Ping dann erfolgreich war (also der Ping durch ging), wird die Schleife beendet und das Skript läuft normal weiter.
Die Test-Connection ist mit -quiet allerdings dann positiv, wenn einer der angegebenen Server erreichbar ist. Je nachdem ob es dir ausreicht wenn nur einer der Server angegebenen Server erreichbar ist.
Also bei:
geht es weiter sofern einer der beiden verfügbar ist.
Gruß
Doskias
while(!(Test-Connection Server -count 1 -Quiet))
{}
Der Parameter -Quiet gibt dir "True oder False zurück. durch das ! bedeutet die while-Schleife:
Solange Test-Connection false ist, wird die Anweisung zwischen { und } ausgeführt. Da steht aber nichts drin, also passiert auch nichts. Hier könntest du ggf. ein Logging einbauen, dass die Verbindung nicht da war. Wenn der Ping dann erfolgreich war (also der Ping durch ging), wird die Schleife beendet und das Skript läuft normal weiter.
Die Test-Connection ist mit -quiet allerdings dann positiv, wenn einer der angegebenen Server erreichbar ist. Je nachdem ob es dir ausreicht wenn nur einer der Server angegebenen Server erreichbar ist.
Also bei:
while(!(Test-Connection Server1, Server2 -count 1 -Quiet))
{}
geht es weiter sofern einer der beiden verfügbar ist.
Gruß
Doskias
Zitat von @erikro:
So sollte es gehen. Ich würde aber überlegen, das in eine Do-While-Schleife zu legen, bis es klappt. Irgenwie so:
hth
Erik
MoinSo sollte es gehen. Ich würde aber überlegen, das in eine Do-While-Schleife zu legen, bis es klappt. Irgenwie so:
> do {
>
> # Hier könnte man z. B. in ein Log schreiben, dass die Verbindung getestet wird und wann.
>
> }
> until($(Test-Connection server1, server -Count 2))
>
> # Und hier der Rest des Skripts.
>
hth
Erik
Hier hast du (genau wie bei meiner Idee) aber auch dass Problem, dass die Schleife unterbrochen sobald einer der angegebenen Server erreichbar ist.
Gruß
Doskias
Moin,
Gruß Thomas
Zitat von @Doskias:
Hier hast du (genau wie bei meiner Idee) aber auch dass Problem, dass die Schleife unterbrochen sobald einer der angegebenen Server erreichbar ist.
einfach an 2 Bedingungen knüpfen und gut ist.Hier hast du (genau wie bei meiner Idee) aber auch dass Problem, dass die Schleife unterbrochen sobald einer der angegebenen Server erreichbar ist.
do { <# whatever #> }
until( (Test-Connection server1 -count 1 -EA si) -and (Test-Connection server2 -Count 1 -EA si) )
Gruß Thomas
Moin,
Das war doch so vom TO gefordert. Vielleicht machen ja beide das Gleiche und einer reicht.
Liebe Grüße
Erik
Zitat von @Doskias:
Hier hast du (genau wie bei meiner Idee) aber auch dass Problem, dass die Schleife unterbrochen sobald einer der angegebenen Server erreichbar ist.
Hier hast du (genau wie bei meiner Idee) aber auch dass Problem, dass die Schleife unterbrochen sobald einer der angegebenen Server erreichbar ist.
Das war doch so vom TO gefordert. Vielleicht machen ja beide das Gleiche und einer reicht.
Liebe Grüße
Erik
Selber Moin
Klar. Seine Test-Connection macht das gleiche, aber ich woltle an der Stelle auf Nummer sicher gehen. Grade weil er sich mit Schleifen offenbar nicht so auskennt
Da war ich mir bei der Aussage:
Dann nicht mehr so sicher. Wenn entsprechende Server vom Client aus erreichbar sin ist sprachlich nicht das gleiche wie wenn einer der beiden Server erreichbar ist.
Gruß
Doskias
Zitat von @erikro:
Das war doch so vom TO gefordert. Vielleicht machen ja beide das Gleiche und einer reicht.
Das war doch so vom TO gefordert. Vielleicht machen ja beide das Gleiche und einer reicht.
Klar. Seine Test-Connection macht das gleiche, aber ich woltle an der Stelle auf Nummer sicher gehen. Grade weil er sich mit Schleifen offenbar nicht so auskennt
Da war ich mir bei der Aussage:
Das Skript soll nur ausgeführt werden, wenn entsprechende Server vom Client aus erreichbar sind.
Dann nicht mehr so sicher. Wenn entsprechende Server vom Client aus erreichbar sin ist sprachlich nicht das gleiche wie wenn einer der beiden Server erreichbar ist.
Gruß
Doskias