Re: An die Netzwerkprofis - Skript gesucht
Geizhals » Forum » Netzwerk » An die Netzwerkprofis - Skript gesucht (7 Beiträge, 233 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Re: An die Netzwerkprofis - Skript gesucht
25.04.2008, 15:21:00
Hi!

Sollte an sich recht einfach mit einem WMI-Script zu lösen sein; ich hab da auf die Schnelle mal folgendes gebastelt:

Dim sHost		
Dim sTarget		
Dim cPingResults	
Dim oPingResult		
Dim sService
Dim cService
Dim oService
Dim iInterval

sHost = "."
sTarget	= "192.168.0.1"
sService = "Messenger"
iInterval = 1000

Do
Set cPingResults = GetObject("winmgmts:{impersonationLevel=impersonate}//" & _
		sHost & "/root/cimv2"). ExecQuery("SELECT * FROM Win32_PingStatus " & _
		"WHERE Address = '" + sTarget + "'")

  For Each oPingResult In cPingResults
  	If oPingResult.StatusCode = 0 Then
                Set cService = GetObject("winmgmts:{impersonationLevel=impersonate}//" & _
		               sHost & "/root/cimv2"). ExecQuery("SELECT * FROM Win32_Service " & _
                               "WHERE Name = '" + sService + "'")
                   For Each oService In cService
                       If oService.Started = False Then oService.StartService
                   Next
  	Else
                Set cService = GetObject("winmgmts:{impersonationLevel=impersonate}//" & _
		               sHost & "/root/cimv2"). ExecQuery("SELECT * FROM Win32_Service " & _
                               "WHERE Name = '" + sService + "'")
                   For Each oService In cService
                       If oService.Started = True Then oService.StopService
                   Next

  	End If
  Next
  Wscript.Sleep iInterval
Loop

Credits:
http://www.enterpriseitplanet.com/networking/features/article.php/1571771
http://www.computerperformance.co.uk/vbscript/wmi_services.htm


Speicher das als .vbs-Datei ab und lass es laufen.
Das Script checkt jede Sekunde, ob es ein Reply gibt; wenn nicht, dann wird ein Dienst gestoppt (falls er vorher gestartet war), und falls schon wird der Dienst gestartet (wenn er vorher beendet war).

Du musst halt nur IP Addesse und Service Name (Achtung: CAse sEsitIve!) tauschen.
Da ließe sich dann auch noch ein Eintrag im Event Log mitschreiben, wäre noch ein WMI Aufruf mehr.

Gibt sicher schönere Varianten, wie zB. Netzwerkmonitoring Tools und zweifellos auch bessere Scripts, aber das tut schon mal, was Du möchtest.

Ein Hinweis noch: das Script läuft so lange, bis der Rechner neu gestartet wird. Falls Du es vorher beenden möchtest musst Du den Prozess "cscript.exe" (bzw. "wscript.exe", je nach Aufruf) mit der Hand beenden.

hth,

greetz

glockman B-)

- I don't need any sex. Life screws me every day... -
It's a Thing...
You wouldn't understand.

Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung