Gast freak Geschrieben 12. Januar 2004 Melden Teilen 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 Zitieren Link zu diesem Kommentar
sharky2000 10 Geschrieben 12. Januar 2004 Melden Teilen Geschrieben 12. Januar 2004 geh doch einfach über den shell command ich kenn wsh nicht aber bei meinen vba-appz klappt das immer prima Zitieren Link zu diesem Kommentar
sfoc 10 Geschrieben 12. Januar 2004 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Gast freak Geschrieben 12. Januar 2004 Melden Teilen Geschrieben 12. Januar 2004 thx für die Prompte Antwort, aber irgendwie geht dies nicht. Zitieren Link zu diesem Kommentar
sfoc 10 Geschrieben 12. Januar 2004 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Gast freak Geschrieben 12. Januar 2004 Melden Teilen 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 Zitieren Link zu diesem Kommentar
sfoc 10 Geschrieben 12. Januar 2004 Melden Teilen Geschrieben 12. Januar 2004 bitte schau mal in meinen vorherigen post da habe ich den fehler behoben regards sfoc Zitieren Link zu diesem Kommentar
Gast freak Geschrieben 12. Januar 2004 Melden Teilen 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 Zitieren Link zu diesem Kommentar
sfoc 10 Geschrieben 12. Januar 2004 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Gast freak Geschrieben 13. Januar 2004 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.