Netzwerkabfrage via VB-Script
Hallo mal wieder,
ich habe folgendes mit einem Script vor:
Es soll testen ob Netzwerkverbindung mit xxx.xxx.xxx.xxx besteht.
Wenn Ja dann net use X: \\xy
Als zweites bräuchte ich auch noch ein Script, mit dem ich eine Anwendung via CMD starte, allerdings so das man die Parameter nicht mehr sieht.
C:\xy.exe -s passwort
Dachte mir das man die ganzen Parameter vielleicht im Klartext in dem Script schreibt, und es dann in eine .exe konvertiert.
Habe aber leider nicht herausgefunden, wie ich das mache.
Probieren tue ich alles in Excels 2003 VB Editor.
Fänd es echt Klasse wenn mir da wer helfen könnte.
Besten Dank schon mal!!!
MfG Sam
--- LÖSUNG ---
@echo off
cls
net use * /del
net use /p:no
SET Heimnetz = nicht verbunden
SET Drucker = nicht verbunden
SET OnlineServer = nicht verbunden
SET MediaCenter = nicht verbunden
SET Notebook = nicht verbunden
:Heimnetz
ping 192.168.0.1 -n 1 -w 1
if not errorlevel 1 (set Heimnetz = verbunden)
if not errorlevel 1 goto INTERNET
if errorlevel 1 goto ENDE
:INTERNET
ping 81.173.194.68 -n 1 -w 100
if not errorlevel 1 (set Heimnetz = verbunden + Internet)
if not errorlevel 1 (start C:\Programme\Trillian\Trillian.exe)
:Drucker
ping 192.168.0.10 -n 1 -w 1
if not errorlevel 1 (net use K: \\192.168.0.10\memory_card)
if not errorlevel 1 (set Drucker = verbunden an K
:OnlineServer
ping 192.168.0.4 -n 1 -w 1
if not errorlevel 1 (net use L: \\OnlineServer\Eingehend)
if not errorlevel 1 (net use M: \\OnlineServer\Intern)
if not errorlevel 1 (set OnlineServer = verbunden an L: M
:MediaCenter
ping 192.168.0.3 -n 1 -w 1
if not errorlevel 1 (net use B: \\MediaCenter\Verwaltung)
if not errorlevel 1 (net use N: \\MediaCenter\Eingehend)
if not errorlevel 1 (net use O: \\MediaCenter\Audio)
if not errorlevel 1 (net use P: \\MediaCenter\Video)
if not errorlevel 1 (set MediaCenter = verbunden an B: N: O: P
:NoteBook
ping 192.168.0.5 -n 1 -w 1
if not errorlevel 1 (net use R: \\NoteBook\$C)
if not errorlevel 1 (net use S: \\NoteBook\$D)
if not errorlevel 1 (set NoteBook = verbunden an R: S
goto ENDE2
:ENDE
cls
set Heimnetz
net use
goto END
:ENDE2
cls
set Heimnetz
set MediaCenter
Set OnlineServer
set Notebook
set Drucker
net use
:END
pause
exit
--- ---
Letzte Frage dazu, wie sähe das als VB Script aus und wie mache ich aus der dan eine EXE?
Dankeschön!!!
Gruß Sam
ich habe folgendes mit einem Script vor:
Es soll testen ob Netzwerkverbindung mit xxx.xxx.xxx.xxx besteht.
Wenn Ja dann net use X: \\xy
Als zweites bräuchte ich auch noch ein Script, mit dem ich eine Anwendung via CMD starte, allerdings so das man die Parameter nicht mehr sieht.
C:\xy.exe -s passwort
Dachte mir das man die ganzen Parameter vielleicht im Klartext in dem Script schreibt, und es dann in eine .exe konvertiert.
Habe aber leider nicht herausgefunden, wie ich das mache.
Probieren tue ich alles in Excels 2003 VB Editor.
Fänd es echt Klasse wenn mir da wer helfen könnte.
Besten Dank schon mal!!!
MfG Sam
--- LÖSUNG ---
@echo off
cls
net use * /del
net use /p:no
SET Heimnetz = nicht verbunden
SET Drucker = nicht verbunden
SET OnlineServer = nicht verbunden
SET MediaCenter = nicht verbunden
SET Notebook = nicht verbunden
:Heimnetz
ping 192.168.0.1 -n 1 -w 1
if not errorlevel 1 (set Heimnetz = verbunden)
if not errorlevel 1 goto INTERNET
if errorlevel 1 goto ENDE
:INTERNET
ping 81.173.194.68 -n 1 -w 100
if not errorlevel 1 (set Heimnetz = verbunden + Internet)
if not errorlevel 1 (start C:\Programme\Trillian\Trillian.exe)
:Drucker
ping 192.168.0.10 -n 1 -w 1
if not errorlevel 1 (net use K: \\192.168.0.10\memory_card)
if not errorlevel 1 (set Drucker = verbunden an K
:OnlineServer
ping 192.168.0.4 -n 1 -w 1
if not errorlevel 1 (net use L: \\OnlineServer\Eingehend)
if not errorlevel 1 (net use M: \\OnlineServer\Intern)
if not errorlevel 1 (set OnlineServer = verbunden an L: M
:MediaCenter
ping 192.168.0.3 -n 1 -w 1
if not errorlevel 1 (net use B: \\MediaCenter\Verwaltung)
if not errorlevel 1 (net use N: \\MediaCenter\Eingehend)
if not errorlevel 1 (net use O: \\MediaCenter\Audio)
if not errorlevel 1 (net use P: \\MediaCenter\Video)
if not errorlevel 1 (set MediaCenter = verbunden an B: N: O: P
:NoteBook
ping 192.168.0.5 -n 1 -w 1
if not errorlevel 1 (net use R: \\NoteBook\$C)
if not errorlevel 1 (net use S: \\NoteBook\$D)
if not errorlevel 1 (set NoteBook = verbunden an R: S
goto ENDE2
:ENDE
cls
set Heimnetz
net use
goto END
:ENDE2
cls
set Heimnetz
set MediaCenter
Set OnlineServer
set Notebook
set Drucker
net use
:END
pause
exit
--- ---
Letzte Frage dazu, wie sähe das als VB Script aus und wie mache ich aus der dan eine EXE?
Dankeschön!!!
Gruß Sam
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 22907
Url: https://administrator.de/contentid/22907
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
3 Kommentare
Neuester Kommentar
Testen der Verbindung kannst du, falls der Ping einen Rückgabewert hat, dann würde es mit "errorlevel" funktionieren, allerdings weiss ich es nicht.
Jedoch mit einem kleinen C-Progrämmchen und der "icmgping.h" funktioniert es. Könnte ich dir schnell schreibseln, wenn es keine andere Möglichkeit gäbe.
mfg
Thomas
Jedoch mit einem kleinen C-Progrämmchen und der "icmgping.h" funktioniert es. Könnte ich dir schnell schreibseln, wenn es keine andere Möglichkeit gäbe.
mfg
Thomas
Moin SamTrex,
Jein...das funktioniert schon, nur:
a) Ein Errorlevel größer Null bedeutet Fehler
b) Errorlevel müssen absteigend geprüft werden - die höheren zuerst.
M$-Logik: wenn Errorlevel 2 gegeben ist, dann sind auch Errorlevel 1 und Errorlevel 0 TRUE.
::Beispiel:
IF ERRORLEVEL 1 (echo %1 ist Offline)
IF NOT ERRORLEVEL 1 (echo %1 ist Online)
...
~~~
So funktionierts. Oder so:
...
IF ERRORLEVEL 1 goto Fehlerbehandlung
::wer in der nächsten Zeile ankommt, hat KEIN "goto" gemacht ->kein Fehler
echo %1 ist Online
goto NormalWeiter
:Fehlerbehandlung
echo %1 ist Offline
exit /B 1
:Normalweiter
:: ..weitere Anweisungen
HTH Biber
IF ERRORLEVEL 0 (echo %1 ist Online)
IF ERRORLEVEL 1 (echo %1 ist Offline)
IF ERRORLEVEL 1 (echo %1 ist Offline)
nur das funktioniert nicht.
Jein...das funktioniert schon, nur:
a) Ein Errorlevel größer Null bedeutet Fehler
b) Errorlevel müssen absteigend geprüft werden - die höheren zuerst.
M$-Logik: wenn Errorlevel 2 gegeben ist, dann sind auch Errorlevel 1 und Errorlevel 0 TRUE.
::Beispiel:
IF ERRORLEVEL 1 (echo %1 ist Offline)
IF NOT ERRORLEVEL 1 (echo %1 ist Online)
...
~~~
So funktionierts. Oder so:
...
IF ERRORLEVEL 1 goto Fehlerbehandlung
::wer in der nächsten Zeile ankommt, hat KEIN "goto" gemacht ->kein Fehler
echo %1 ist Online
goto NormalWeiter
:Fehlerbehandlung
echo %1 ist Offline
exit /B 1
:Normalweiter
:: ..weitere Anweisungen
HTH Biber