Netzwerk check bevor mapping durchgeführt wird VBS Script
Hallo Zusammen,
ich bin auf der Suche nach einer Erweiterung für unser VBS Script, welches uns die Laufwerke abhängig in welche OU der AD man sich befindet mappt.
Die Erweiterung soll unseren Fileserver maximal 10 x im Abstand von 5 Sekunden anpingen bevor das Script abgearbeitet wird. Wenn der Server erreichbar ist darf das script natürlich sofort losrenne. Falls es der server nicht erreichbar ist sollte eine Meldung erscheinen.
Einige interessante Ansätze habe ich schon gefunden wie z.b. diesen hier:
jedoch weiß ich nicht welche Zeilen ich entfernen/anpassen muss damit das script sich wie oben beschrieben verhält.
Vielen Dank für ein paar Tipps
Gruß
p.
ich bin auf der Suche nach einer Erweiterung für unser VBS Script, welches uns die Laufwerke abhängig in welche OU der AD man sich befindet mappt.
Die Erweiterung soll unseren Fileserver maximal 10 x im Abstand von 5 Sekunden anpingen bevor das Script abgearbeitet wird. Wenn der Server erreichbar ist darf das script natürlich sofort losrenne. Falls es der server nicht erreichbar ist sollte eine Meldung erscheinen.
Einige interessante Ansätze habe ich schon gefunden wie z.b. diesen hier:
Server = "Servername" 'oder auch IP
Start = Now
Do Until Ping(Server)
WScript.Sleep 1000
Loop
Ende = Now
WScript.Echo "Script gestartet um: " & Start & vbCrLF & _
"Server erreichbar um: " & Ende & vbCrLF & vbCrLF & _
"Dauer: " & DateDiff("s", Start, Ende) & " Sekunden"
Function Ping(machine)
PingResult = True
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
ExecQuery("select * from Win32_PingStatus where address = '"_
& machine & "'")
For Each objStatus in objPing
If IsNull(objStatus.StatusCode) Or objStatus.StatusCode <> 0 Then
PingResult = False
End If
Next
Ping = PingResult
End Function
jedoch weiß ich nicht welche Zeilen ich entfernen/anpassen muss damit das script sich wie oben beschrieben verhält.
Vielen Dank für ein paar Tipps
Gruß
p.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 174915
Url: https://administrator.de/contentid/174915
Ausgedruckt am: 20.11.2024 um 13:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo pingu256!
Etwa so (wobei Du die Zeilen 12 und vor allem 10 vermutlich etwas anders formulieren wirst ):
Grü0ße
bastla
Etwa so (wobei Du die Zeilen 12 und vor allem 10 vermutlich etwas anders formulieren wirst ):
Server = "Servername" 'oder auch IP
For i = 1 To 10
Online = Ping(Server)
If Online Then Exit For
WScript.Sleep 5000
Next
If Online Then
WScript.Echo "Netzlaufwerke können verbunden werden ..."
Else
WScript.Echo "Server nicht erreichbar!"
End If
Function Ping(machine)
PingResult = True
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
ExecQuery("select * from Win32_PingStatus where address = '"_
& machine & "'")
For Each objStatus in objPing
If IsNull(objStatus.StatusCode) Or objStatus.StatusCode <> 0 Then
PingResult = False
End If
Next
Ping = PingResult
End Function
bastla
Hallo pingu256!
Die "
... bzw alternativ:
Grüße
bastla
Die "
Function Ping()
" verwendet WMI, um einen Ping (auf den als Parameter übegebenen Server) durchzuführen und gibt ein "True" oder "False" als Ergebnis zurück ...bei erreichbarkeit soll keine meldung ausgegeben werden
Muss auch nicht - aber hier würde das Mappen der Laufwerke gut hinpassen ... ... bzw alternativ:
If Not Online Then
WScript.Echo "Server nicht erreichbar!"
WScript.Quit 1 'Script beenden
End If
' ... und hier, was im "Online"-Fall so zu tun wäre ...
bastla