Gast freak Geschrieben 12. Januar 2004 Melden Geschrieben 12. Januar 2004 Hallo zusammen. Weiss jemand wie ich in WSH einen dienst starten kann? in der DOS-Eingabeaufforderung ist es ja "net start dienst". Danke für eure hilfe. Gruss Freak
sharky2000 10 Geschrieben 12. Januar 2004 Melden Geschrieben 12. Januar 2004 geh doch einfach über den shell command ich kenn wsh nicht aber bei meinen vba-appz klappt das immer prima
sfoc 10 Geschrieben 12. Januar 2004 Melden Geschrieben 12. Januar 2004 ueber 'reines' vbsript/wsh ist das m.M. nach nciht zu loesen, hier musst du dann mit wmi arbeiten, ab w2k aufwaerts ist es mit installiert beispielcode Dim wbemServices, wbemObjectSet Dim strComputer, wbemObject const service = "dienstname" strComputer = "rechner" set wbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") set wbemObjectSet = wbemServices.InstancesOf("Win32_Service") For Each wbemObject in wbemObjectSet If UCase(wbemObject.Name) = UCase(service) And Not UCase(wbemObject.State) = UCase("running") Then wbemObject.StartService wshShell.LogEvent 4, "service: " & service & "start succesfully" End If Next regards sfoc
Gast freak Geschrieben 12. Januar 2004 Melden Geschrieben 12. Januar 2004 thx für die Prompte Antwort, aber irgendwie geht dies nicht.
sfoc 10 Geschrieben 12. Januar 2004 Melden Geschrieben 12. Januar 2004 was hast du fuer ein system und was fuer eine Meldung bekommst edit: sorry, fehler gefunden Option Explicit 'WScript.Sleep 1000 Dim wbemServices, wbemObjectSet, wshShell Dim strComputer, wbemObject const service = "service" strComputer = "rechner" set wshShell = CreateObject("WScript.Shell") set wbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") set wbemObjectSet = wbemServices.InstancesOf("Win32_Service") For Each wbemObject in wbemObjectSet If UCase(wbemObject.Name) = UCase(service) And Not UCase(wbemObject.State) = UCase("running") Then wbemObject.StartService wshShell.LogEvent 4, "service: " & service & "start succesfully" End If Next regards sfoc
Gast freak Geschrieben 12. Januar 2004 Melden Geschrieben 12. Januar 2004 ich habe windows xp. es kommt leider kein Fehler. aber wenn ich bei den diensten schaue, ist z.b telnet immer noch inaktiv
sfoc 10 Geschrieben 12. Januar 2004 Melden Geschrieben 12. Januar 2004 bitte schau mal in meinen vorherigen post da habe ich den fehler behoben regards sfoc
Gast freak Geschrieben 12. Januar 2004 Melden Geschrieben 12. Januar 2004 Im moment sieht mein script wie folgt aus, aber wen ich dies ausführe und danach in den diensten nachschaue, so ist telnet immernoch auf manuell und nichtaktiv Option Explicit 'WScript.Sleep 1000 Dim wbemServices, wbemObjectSet, wshShell Dim strComputer, wbemObject const service = "Telnet" strComputer = "Support6" set wshShell = CreateObject("WScript.Shell") set wbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") set wbemObjectSet = wbemServices.InstancesOf("Win32_Service") For Each wbemObject in wbemObjectSet If UCase(wbemObject.Name) = UCase(service) And Not UCase(wbemObject.State) = UCase("running") Then wbemObject.StartService wshShell.LogEvent 4, "service: " & service & "start succesfully" End If Next
sfoc 10 Geschrieben 12. Januar 2004 Melden Geschrieben 12. Januar 2004 das script geht nicht nach Anzeigename sondern nach servicename, daher wird der dienst nichtr gestartet, ich sollte dies mal dokumentieren, habe es aber nun geaendert siehe code Option Explicit 'WScript.Sleep 1000 Dim wbemServices, wbemObjectSet, wshShell Dim strComputer, wbemObject const service = "telnet" strComputer = "." set wshShell = CreateObject("WScript.Shell") set wbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") set wbemObjectSet = wbemServices.InstancesOf("Win32_Service") For Each wbemObject in wbemObjectSet ' nach caption If UCase(wbemObject.Caption) = UCase(service) And Not UCase(wbemObject.State) = UCase("running") Then ' nach servicename 'If UCase(wbemObject.Name) = UCase(service) And Not UCase(wbemObject.State) = UCase("running") Then wbemObject.StartService ' protokolliere in eventlog wshShell.LogEvent 4, "service: " & service & "start succesfully" End If Next nun muss es aber ;) regards sfoc
Gast freak Geschrieben 13. Januar 2004 Melden Geschrieben 13. Januar 2004 Danke für Die korrektur. Mein source sieht nun so aus. kannst du mir noch genau erklären für was die foreach-schleife ist??? Dim wbemServices, wbemObjectSet, wshShell Dim strComputer, wbemObject const service = "telnet" strComputer = "." set wshShell = CreateObject("WScript.Shell") set wbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") set wbemObjectSet = wbemServices.InstancesOf("Win32_Service") For Each wbemObject in wbemObjectSet If UCase(wbemObject.Caption) = UCase(service) And Not UCase(wbemObject.State) = UCase("running") Then wbemObject.StartService End If Next
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden