Computer Hardware Forum - TweakPC

Computer Hardware Forum - TweakPC (https://www.tweakpc.de/forum/)
-   Programmiersprachen (https://www.tweakpc.de/forum/programmiersprachen/)
-   -   [Batch-Script] Windows Dienste Aktivieren und starten (https://www.tweakpc.de/forum/programmiersprachen/86537-batch-script-windows-dienste-aktivieren-starten.html)

Soman_X 04.04.2012 09:01

[Batch-Script] Windows Dienste Aktivieren und starten
 
Huhu!

Wie eventuell schon ersichtlich war, schlage ich mich als relativer Scripting Neuling gerade beruflich mit Batch und vbScript herum.
Nun hab ich mal wieder ein Problem... aber sehr selbst.

Ich habe mir ein Script geschrieben, welches einen beliebigen Windows Dienst aktivieren (aka auf "Auto" setzen) soll und ihn dann startet. Zu Testzwecken muss nun Telnet herhalten
[CODE]REM Batch Script to edit the Star-Value of WIndows Services
REM --add "hklm\SYSTEM\CurrentControlSet\Services\[Service Name]" /v Start /t REG_DWORD /d [Value]
REM 2 (0x00000002) equals the start type Auto
REM 3 (0x00000003) equals the start type Manual
REM 4 (0x00000004) equals the start type Deactivated

REM Set the Telnet Service to Start type "Auto" and start Telnet
reg add "hklm\SYSTEM\CurrentControlSet\Services\TlntSvr" /v Start /t REG_DWORD /d 2
net start TlntSvr
pause[/CODE]

Dumm nur, dass es nicht funktioniert oO
Genauer gesagt: Der Registry Schlüssel wird geändert, die Dienste-Übersicht von Windows sagt auch "Automatisch", aber das Script gibt die Fehlermeldung, dass der Dienst nicht gestartet werden kann, da er entweder deaktiviert ist oder nicht vorhanden ist 8-O

Auch das splitten in 2 Scripts, um überschneidungen in der Ausführung zu verhindern, schafft keien Abhilfe....

Hat jemand ne Lösung parat?

Soman_X 04.04.2012 10:40

AW: [Batch-Script] Windows Dienste Aktivieren und starten
 
UPDATE:
Problem gelöst...

Falls Zukünftig jemand über die SuFu drauf stöße: Es ist mit Batch Scripten so ohne weiteres nicht möglich. Hier wird tatsächlich nur der Reg-Key verändert. Dem Dienst selbst ist das (bis zum Neustart des Rechners) egal.
Eine Lösung ist lediglich über ein vbScript ohne Neustart des PC's möglich.

[code]'Service-ID: 2 = Autostart, 3 = Start on Demand, 4 = Disabled
Const SERVICE_START_ID = 4

Set oShell = CreateObject("WScript.Shell")
Set oWshNet = CreateObject("WScript.Network")
sComputer = oWshNet.ComputerName
logfile = ""

sService = "TlntSvr"
x = StopService(sService, oShell)

WScript.Echo logfile

Function StopService(sService, oShell)
' set Messenger to Enabled
bOK = ConfigureService(sService, SERVICE_START_ID, sComputer)
' start the Messenger service
oShell.Run "net.exe stop """ & sService & """", 0, True
If bOK Then
logfile = logfile & sService & " configured" & vbCrLf
Else
logfile = logfile & "Failed to configure " & sService & vbCrLf
End If
End Function

Function ConfigureService(sService, iType, sNode)
Dim oComputer, oService
Set oComputer = GetObject("WinNT://" & sNode & ",computer")
On Error Resume Next
Set oService = oComputer.GetObject("Service", sService)
If Err.Number <> 0 Then
ConfigureService = False
Exit Function
End If

If oService.StartType <> iType Then
oService.StartType = iType
oService.SetInfo
WScript.Sleep 1000
End If
ConfigureService = True
End Function
[/code]


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.

Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.