hey cdk,
danke für deine Hilfe. Jetzt berichte ich wie weit ich gekommen bin. Eigentlich sollte ich bereits gestern vor dir schreiben, hab es aber nicht geschafft...die Arbeit hat gerufen. Und jetzt wollte ich es machen, nun aber decken sich deine Erkenntnisse fast vollständig mit meinen Tests.
Also:
Quote:Damit hast Du ihn nicht nur gestoppt und deaktiviert, sondern komplett rausgehauen. Beim nächsten Aufruf lädt er sich dann erstmal speicherresident um irgendwie "da" zu sein und beendet sich daher nicht. Und das Skript wartet bis in alle Ewigkeit.
Der Dienst ist aber somit wieder verfügbar und der nächste Aufruf startet dann sein GUI.
na so was habe ich gedacht, war mir klar...hatte die Kenntnisse nicht daraus zu kommen. Ich habe intuitiv versucht ein
start vors Pfad zu setzen, es kam aber was komisches raus, denn es hat sich ein neues CMD Fenster geöffnet und leer stehen geblieben. Was mit dem Sktiptfenster geschah erinner mich nicht...auf jeden war das kein Erfolg , meiner Meinung nach.
Also habe mich im INternet vergraben und fast aussichtslos nach "Batchskript bleibt hängen" oder ähnlichem gegoogelt. Wie geschrieben, fast aussichtslos, aber nur fast, denn gerade wollte ich aufgeben als ich an inregdeiner Stelle las, das die Gänsefüsschen dazu führen, dass das was dazwischen ist in ein neues cmd Fenster aufgemacht wird. Somit hat sich für mich die Sache mit dem
start was ich oben getestet habe. Also dachte ich mir...was wäre wenn zwischen den Gänsefüsschen NICHTS steht, sprich einfach "", also sah mein Pfad so aus:
start "" "C:\Program Files (x86)\Kaspersky Lab\Kaspersky Security Scan 2.0\kss.exe"
Ausgeführt und wunder... kein neues cmd Fenster und das wichtigste das Skript lief bis zu Schluß und beendete sich
Und jetzt lese ich deinen Vorschlag mit
start "KSS-Dienst" "C:\Program Files (x86)\Kaspersky Lab\Kaspersky Security Scan 2.0\kss.exe" -r was eigentlich das gleiche ist, nur es wird sich das neue cmd-fenster aufmachen, das könnte ich mit "" sogar vermeiden
Des weiteren, es war dennoch immer noch so, dass trotzdem die GUI nicht startete, sondern erst wenn ich das Skript erneut ausführte. An dieser Stelle habe ich das gemacht was ich bis zur ""-Enddeckung immer gemacht hatte (aber immer ohne Erfolg, denn das Skript hängte immer) , nämlich die Pfadzeile wiederholen. Erst hat das auch nichts gebracht, keine GUI . An dieser Stelle hatte ich zufällig einige Probleme (nicht aufgrund der Skript-Tests) mit meinem Firewall, müsste einige Firewall-Regeln löschen. Also als ich die Batchdatei erneut ausgeführt habe, müsste ich die Regeln für die .bat wieder bestimmen, also es gab Zeitdifferenz von einigen Sekunden zwischen der Ausführung der einzelnen Skriptbefehle, weil ich die Regeln setzen müsste. UNd dann wurde die GUI von KSS auch im Vordergrund aufgemacht
. Also es war mir klar dass es zwischen den beiden Pfadzeilen eine Verzögerung sein müsste. Und hier kommst Du mit der selben Idee
@ping localhost >nul: Hatte keine Zeit mehr die Geschichte mit dem ping zu testen, ich fang verschiedene Schreibweisen des Befehls, ich bin mir nicht sicher ob es funktioniert hat.... aber wie gesagt hatte keine Zeit mehr. Also fange ich von hier an mit den Tests, bin aber noch nicht zu Hause, also vorab einige Fragen:
- Muss vor ping das @ Zeichen stehen? Ich habe das glaube ich nirgens im Netz so gesehen.
- Dann muss localhost als Wort da stehen oder eine IP Adresse? Eine Sekunde Verzögerung ist ein bisschen wenig, vielleicht gebe ich ihm 5 sekunden.
- Wie soll dann der Befehl aussehen? Die verschiedenen Parameter für diesen Befehl werden im Internet in unterschiedlicher Reihenfolge geschrieben. Auch die Leerzeichen an verscheidenen Stellen positioniert oder gar ausgesetzt. Kannst Du bitte genau beschreiben/bezeichnen wo Leerzeichen sind?
Darauf folgt jetzt der Aufruf des GUI in der ursprünglichen Form (und ohne -r):
"C:\Program Files (x86)\Kaspersky Lab\Kaspersky Security Scan 2.0\kss.exe"
ähm, ich denke wenn ich die Zeile wieder so schreibe, wird sich der Skript wieder aufhängen. Ich habe die Pfadzeile mit dem
start und "" einfach wieder verwendet. Hm, oder doch nicht aufhängen, weil ja vorher bereits ausgeführt wurde? Naja , muss ich testen.
Du hast nicht mehr über die Deaktivierung des Dienstes
sc config "KSS" start= disabled geschrieben. Ist das Absicht? Ich denke ich MUSS den Dienst dann deaktivieren, ansonsten ist er beim nächsten Start wieder automatisch aktiv und im Hintergrund.
Und zu guter Letzt
taskkill. So wie ich gegoogelt habe, ist
/f zum Erzwingen des Beendens. Das ist OK.
im ist die Bezeichnung des Prozesses zum KIllen, in deinem Beispiel cmd.exe, warum? Gehst du vom zusätzlich geöffneten cmd-Fenster aufgrund von
start "KSS-Dienst"weiter oben aus? Was würde sich jetzt ändern, wenn es kein neues cmd-Fenster gibt, da ich "" benutze? Dann sollte kss.exe gekillt werden oder? Also wie wäre so was
taskkill /f /im kss.exe /t
Es sind 2 kss.exe Prozesse im Taskmanager, deswegen denke ich dass /t genau passt. Oder sogar die beiden PID sauch eingebaut, vorsichtshalber
taskkill /f /im kss.exe /PID xxx /PID yyy /t
So?
danke