If else kaskadieren und Netzverkverbindung prüfen
Hallo,
ich möchte mit if / else prüfen, ob ein Computer über das Kabelnetzwerk (XYZ) verbunden ist und nicht über W-Lan (ABC). Beide Netzwerkverbindungen sind im gleichen IP-Netzwerk somit fällt ein Test mittels Ping weg.
Es muss eigentlich nur geprüft werden, ob die Netzwerkverbindung mit der Bezeichnung XYZ verbunden ist oder nicht. Sonst Abbruch.
Wenn diese Prüfung erfolgreich ist, soll dann noch geprüft werden, ob XYZ mit der Geschwindigkeit von 1Gbit/s verbunden ist, sonst Abbruch.
Wenn diese Prüfung erfolgreich ist, noch einmal Prüfen ob ABC nicht verbunden ist, dann rufe Script test.cmd auf, sonst Abbruch.
Kann mir da jemand auf die Sprünge helfen wie ich das prüfe und kann ich if / else so kaskadieren in einer Batch?
Betriebssystem: Windows 7
ich möchte mit if / else prüfen, ob ein Computer über das Kabelnetzwerk (XYZ) verbunden ist und nicht über W-Lan (ABC). Beide Netzwerkverbindungen sind im gleichen IP-Netzwerk somit fällt ein Test mittels Ping weg.
Es muss eigentlich nur geprüft werden, ob die Netzwerkverbindung mit der Bezeichnung XYZ verbunden ist oder nicht. Sonst Abbruch.
Wenn diese Prüfung erfolgreich ist, soll dann noch geprüft werden, ob XYZ mit der Geschwindigkeit von 1Gbit/s verbunden ist, sonst Abbruch.
Wenn diese Prüfung erfolgreich ist, noch einmal Prüfen ob ABC nicht verbunden ist, dann rufe Script test.cmd auf, sonst Abbruch.
Kann mir da jemand auf die Sprünge helfen wie ich das prüfe und kann ich if / else so kaskadieren in einer Batch?
Betriebssystem: Windows 7
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 185585
Url: https://administrator.de/forum/if-else-kaskadieren-und-netzverkverbindung-pruefen-185585.html
Ausgedruckt am: 15.04.2025 um 15:04 Uhr
12 Kommentare
Neuester Kommentar
Hallo traller!
Erst mal musst du die nötigen Infos sammeln. Diese dann mit IF Statements zu verwursten ist vermutlich kein Problem.
Nun bin ich leider kein "Networker", darum müsstest du etwas mithelfen.
Ich habe 2 WMIC Kommandozeilen, mit denen du vermutlich diese Informationen bekommst:
1.
2.
Das Get könnte man nun noch konkretisieren und ein Where ergänzen, um das auszufiltern was tatsächlich benötigt wird.
- Kommen die benötigten Informationen? Wenn ja, über welche Eigenschaften?
- Benötigst du beide Kommandozeilen? Wenn ja, welche Eigenschaft in den beiden Ausgaben ist dazu geeignet, um eine eindeutige Zuordnung zu bekommen?
Grüße
rubberman
Erst mal musst du die nötigen Infos sammeln. Diese dann mit IF Statements zu verwursten ist vermutlich kein Problem.
Nun bin ich leider kein "Networker", darum müsstest du etwas mithelfen.
Ich habe 2 WMIC Kommandozeilen, mit denen du vermutlich diese Informationen bekommst:
1.
WMIC /Node:"%computername%" /Output:STDOUT Path Win32_NetworkAdapterConfiguration Get /Format:LIST
WMIC /Node:"%computername%" /Output:STDOUT Path Win32_NetworkAdapter Get /Format:LIST
- Kommen die benötigten Informationen? Wenn ja, über welche Eigenschaften?
- Benötigst du beide Kommandozeilen? Wenn ja, welche Eigenschaft in den beiden Ausgaben ist dazu geeignet, um eine eindeutige Zuordnung zu bekommen?
Grüße
rubberman
Hallo traller und rubberman!
Nebeneffekt: Es werden keine Admin-Rechte benötigt ...
Grüße
bastla
Nun könnte man doch eventuell sagen: Suche nach Zeile ...
... oder etwas integriertes VBScript den Job machen lassen - ungetestet:set "G=%temp%\GetInfo.vbs"
>"%G%" echo For Each objItem In GetObject("winmgmts:\\.\root\CIMV2").ExecQuery("SELECT * FROM Win32_NetworkAdapter Where NetConnectionID='LAN-Verbindung'"):WScript.Echo objItem.NetConnectionStatus^&"_"^&objItem.Speed:Next
for /f %%i in ('cscript //nologo "%G%"') do set "Info=%%i"
if "%Info%" neq "2_1000000000" echo Voraussetzungen nicht erfuellt! & goto :eof
echo Mit 1 GBit verbunden
Grüße
bastla
Hallo traller, hallo bastla!
x Zeilen darunter ist nicht notwendig, dafür gibt es Where. Aber welcher Wert soll denn "y" sein?
@bastla
Ich bekomme auch mit WMIC keinen UAC Prompt, falls du darauf hinaus willst. Allerdings gehöre ich auf meiner Kiste zu den lokalen Admins
Grüße
rubberman
x Zeilen darunter ist nicht notwendig, dafür gibt es Where. Aber welcher Wert soll denn "y" sein?
@bastla
Ich bekomme auch mit WMIC keinen UAC Prompt, falls du darauf hinaus willst. Allerdings gehöre ich auf meiner Kiste zu den lokalen Admins
Grüße
rubberman
Hallo traller!
Was spricht gegen VBS?
Per "wmic" kannst Du das so versuchen:
Danach hast Du in der Variabeln %NCS% den zurückgegebenen Wert und kannst ihn per "
Grüße
bastla
Was spricht gegen VBS?
Per "wmic" kannst Du das so versuchen:
for /f "tokens=2 delims==" %%i in ('wmic NIC Where NetConnectionID^="LAN-Verbindung" get NetConnectionStatus /value') do set "NCS=%%i"
if
" abfragen ...Grüße
bastla
[OT]
[_] Das oben stehende VBS lässt sich nicht durch Entfernen der Kommentarzeilen geschwindigkeitsoptimieren
[_] Wenn ich dieses unappetitliche Gestrunkele mit in die Wohnung rein bringe, dann gibt es abba Schimpfe
[_] Es deprimiert mich immer, 5 Zeilen zu sehen und nach der ersten halben macht es bei mir *TILT* *TILT* *TILT*
Bin gespannt, was er ankreuzt....
SCNR
Biber
[/OT]
[_] Das oben stehende VBS lässt sich nicht durch Entfernen der Kommentarzeilen geschwindigkeitsoptimieren
[_] Wenn ich dieses unappetitliche Gestrunkele mit in die Wohnung rein bringe, dann gibt es abba Schimpfe
[_] Es deprimiert mich immer, 5 Zeilen zu sehen und nach der ersten halben macht es bei mir *TILT* *TILT* *TILT*
Bin gespannt, was er ankreuzt....
SCNR
Biber
[/OT]
Hallo zusammen.
Mit mehreren Bedingungen ggf. so:
Das FINDSTR ist da, um die Unicodeausgabe in ein verstümmeltes ASCII zu konvertieren. Das ist der eigentliche Nachteil von WMIC gegenüber der VBS Lösung.
Grüße
rubberman
Mit mehreren Bedingungen ggf. so:
for /f "delims=" %%i in ('WMIC /Node:"%computername%" /Output:STDOUT Path Win32_NetworkAdapter Where "NetConnectionID='LAN-Verbindung' And NetConnectionStatus='2'" Get Speed /FORMAT:List^|findstr .') do set "%%i"
echo %Speed%
Grüße
rubberman
[OT] @Biber
Wer so schöne flow-charts malt, kann eigentlich nur Antwort 2 wählen
(so denn überhaupt noch eine Reaktion auf die Frage kommt) ...
Grüße
bastla
[/OT]
Wer so schöne flow-charts malt, kann eigentlich nur Antwort 2 wählen
Grüße
bastla
[/OT]