hi,
ich bin gerade an einer deinstallationsroutine dran, jetzt müsste ich vor der deinstallation den Dienst beenden kann man dies irgendtwie lösen?
lg
Marc
hi,
ich bin gerade an einer deinstallationsroutine dran, jetzt müsste ich vor der deinstallation den Dienst beenden kann man dies irgendtwie lösen?
lg
Marc
mit der "ServiceControl.au3" welche du hier im Forum findest, kannst du Services stoppen und starten
oder über dos net start / stop
Hi
:hm:also da die meisten dienste werden im taskmanager aufgeführt also solltest du dir ma inder hilfe von autoit den befehl processclose angucken!
aber wenn du genauere hilfe benötigst solltest du dein problem ein wenig näher beschreiben!
mfg DjBasslord
Danke, das war schon genau das was ich gesucht habe, werde damit mal rum testen...
Viele Grüße
Marc
processclose ist aber radikal.
Run("net stop ""SERIVICE NAME""")
Ich hatte jetzt auch mal das Problem, einen Dienst benden zu müssen und bin mit dieser Lösung ans Ziel gekommen.
Vielleicht kann das ja jemand gebrauchen
; Sicherheitscenter beenden
Run(@ComSpec & " /c " & 'sc stop wscsvc', "", @SW_HIDE)
...
...
Run(@ComSpec & " /c " & 'sc query wscsvc > ' & @TempDir & '\status.txt', "", @SW_HIDE)
$var = FileRead(@TempDir & "\status.txt")
$var2 = StringInStr($var, "STOPPED")
...
...
Der Befehl sc (sc.exe) ist ab Windows XP im Sstemverzeichnis und ansonsten im RessourceKit zu finden. Da ich sichergehen muss, dasss der Dienst auch beendet wurde, bevor das Script weitermacht, ist SC ein sehr gutes Werkzeug dafür.
Hallo!
hab damit einiges an praktischer Erfahrung, arbeite mit der Lösung
net stop "Dienstname"
das gefährlich ist aber sofort im Script weiterzumachen, das Betriebssystem braucht evtl. einen ganzen Moment bis der Dienst runtergefahren ist. (bei Oracle dauert das evtl. 2 Minuten, wenn da ne große DB rauf- oder runtergefahren wird)
Zuerst mal suchen: (Registry: HKLM\SYSTEM\CurrentControlSET\Services
welche EXE hinter dem Dienst steht (der Dienst ist ja technisch gesehen nur ein Trick, damit eine EXE (die keinerlei Bildschirmausgaben macht) dauernd läuft.
Nach dem Absetzen des net stop Kontrollieren, ob die EXE weg ist.
mit dem SC kann man übrigens nicht arbeiten, wenn der Dienst z.B. mit autoit programmiert ist und mit dem instsrv.exe und srvany.exe aus dem Ressource-Kit arbeitet!!
hier mal ein paar Beispiele von mir:
Func _schedulerrunter()
$z=1
while $z < 10
$befehl='net stop "Prisma Scheduler"'
Run($befehl, "", @SW_HIDE)
sleep(5000)
If ProcessExists("ndSchd32.exe") Then
Else
$z=11
EndIf
$z=$Z+1
wend
EndFunc
Func _dfueactive()
$dfue=ProcessExists("nmc32.exe")
if $dfue <> 0 then
Return 1
else
Return 0
EndIf
EndFunc
für weitere Fragen steh ich gerne zur Verfügung.
Grüße aus dem verregneten Spessart
German