tray-park
Goto Top

Batch - Prozessnamen vergeben

Ich versuche seit ner Weile einer Batchdatei einen Prozessnamen zuzuweisen.

Hi,

als Abbildname wird für jede Batch immer "cmd.exe" verwendet. Ich würde aber gerne "test.exe" oder ähnliches daraus machen.

Ich habe schon versucht den Title anzusprechen oder mit wmic process experimentiert. Auch der Batch eine niedrigere/höhere Priorität zuzuordnen und dann die cmd.exe mit dieser Priorität zu killen, hat nicht funktioniert.

Ist das überhaupt möglich?

Freue mich über jede Hilfe.

Grüße

Tray

Content-Key: 164847

Url: https://administrator.de/contentid/164847

Printed on: April 19, 2024 at 11:04 o'clock

Member: Skyemugen
Skyemugen Apr 19, 2011 at 08:24:17 (UTC)
Goto Top
Aloha,

ich denke, den Abbildnamen wirst du nur verändern können, wenn du die Datei umbenennst (also test.exe statt cmd.exe), da ja immer der Name der ausgeführten Anwendung angegeben wird.

greetz André
Mitglied: 60730
60730 Apr 19, 2011 at 08:31:33 (UTC)
Goto Top
moin,

  • schreib doch mal genau, was dein Ziel ist.

Ich vermute - du willst via Taskkill gezielt eine cmd abschiessen?

Gruß
Mitglied: 99045
99045 Apr 19, 2011 at 08:36:06 (UTC)
Goto Top
Hi!

Gib der Batchdatei einen Fenstertitel in der ersten Zeile:
TITLE Blubber

dann kannst du den Filter nach dem Fenstertitel nutzen.

Wenn du nur eine cmd.exe gestartet hast, kannst du zum Beenden statt taskkill tskill verwenden:
tskill cmd
Tskill ist seit XP in allen Versionen außer den Verschnittversionen Home soundso dabei.

Gruß
Mitglied: 60730
60730 Apr 19, 2011 at 08:44:57 (UTC)
Goto Top
Salü,

[OT]
  • wenn man(n) taskkill /? bei einem deutschen XP SP3 eingibt, welchen Bock - oder rückschluß auf C&P Programmierung von M$ findet man da?
die 3.letzte Zeile * lol - ist mir vorher noch nie ausgefallen
Beispiele:
    TASKKILL /S System /F /IM notepad.exe /T
    TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
    TASKKILL /F /IM notepad.exe /IM mspaint.exe
    TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne unbenan*"
    TASKLIST /F /FI "USERNAME ne NT-AUTORITÄT\SYSTEM" /IM notepad.exe
    TASKKILL /S System /U Domäne\Benutzername /FI "USERNAME ne NT*" /IM *
    TASKKILL /S System /U Benutzername /P Kennwort /FI "IMAGENAME eq note*"
[/OT]
Mitglied: 99045
99045 Apr 19, 2011 at 08:49:42 (UTC)
Goto Top
Sei nicht so pingelig. face-smile
Member: tray-park
tray-park Apr 19, 2011 at 10:07:18 (UTC)
Goto Top
Hi,

genau, optimal wäre einen Prozess mit taskkill abschießen zu können. Da aber mehrere CMD.exen laufen, kann ich ja nicht mit
TASKKILL /F /IM cmd.exe
arbeiten, da dieser mir alle killen würde.

Den Titel des Fensters zu definieren, bsp
TITLE Test
ist auch nicht gerade einfach.
taskkill /FI "WINDOWTITLE eq *Test*"  
hat nicht funktioniert.

Ich hab auch mal die cmd.exe kopiert und in test.exe umbenannt.

Danach habe ich eine Batch gebastelt (start_haengt_staendig.bat), welche
start "C:\Windows\System32\test.exe" "D:\Test\haengt_staendig.bat"  
beeinhaltet. Diese sollte ja dann test.exe heißen oder?

Das hatte leider auch nicht geklappt.
Member: tray-park
tray-park Apr 19, 2011 at 10:07:53 (UTC)
Goto Top
Sorry, hab in der Eile den Thread als gelöst markiert face-smile
Mitglied: 99045
99045 Apr 19, 2011 at 10:18:42 (UTC)
Goto Top
Das kannst du doch wieder aufheben, oder etwa nicht?

Verwende nur ein Wildcard-Zeichen oder den genauen Fenstertitel, dann geht es.

taskkill /FI "WINDOWTITLE eq Test*" 
Member: Skyemugen
Skyemugen Apr 19, 2011 at 10:25:09 (UTC)
Goto Top
Aloha,

start "C:\Windows\System32\test.exe" "D:\Test\haengt_staendig.bat"
du hast also jetzt
start "Fenstertitel" "Batchdatei, die immer noch mit cmd.exe ausgeführt wird"
am Laufen ...

das mit der test.exe funktioniert an sich, aber natürlich nicht so ... ;)

greetz André
Member: tray-park
tray-park Apr 19, 2011 at 10:26:05 (UTC)
Goto Top
Hi,

auch mit einem Jokerzeichen bekomme ich folgedes erzählt.
FEHLER: Der Suchfilter wurde nicht erkannt.
Ohne Jokerzeichen:
INFORMATION: Es werden keine Aufgaben mit den angegebenen Kriterien ausgeführt.
Member: tray-park
tray-park Apr 19, 2011 at 10:28:39 (UTC)
Goto Top
Salut,

Wenn ich mit der PowerShell ein Skript aufrufe, dann gebe ich auch zuerst den Pfad zur PowerShell.exe, dann den Pfad zum Skript an.
c:\Windows\...\powershell.exe d:\test\...\power.ps1

Wie geht das dann mit dem command?

Liebe Grüße
Mitglied: 99045
99045 Apr 19, 2011 at 10:28:47 (UTC)
Goto Top
Ich hab's eben mit und ohne Joker ausprobiert: Blubber* und Blubber, beides geht problemlos: Schupps, isser weg. face-smile

Hast du vielleicht mehrere "Test" zu laufen?
Mitglied: 60730
60730 Apr 19, 2011 at 11:09:04 (UTC)
Goto Top
moin,

c:\>start "C:\Windows\System32\test.exe" cmd.exe

c:\>taskkill /F /FI "WINDOWTITLE eq C:\Windows\System32\test.exe"
ERFOLGREICH: Der Prozess mit PID 5436 wurde beendet.

c:\>
Zitat von @99045:
Hast du vielleicht mehrere "Test" zu laufen?

  • Komm die Zeit nehm ich mir auch noch...

c:\>start "C:\Windows\System32\test.exe" cmd.exe

c:\>start "C:\Windows\System32\test.exe" cmd.exe

c:\>start "C:\Windows\System32\test.exe" cmd.exe

c:\>taskkill /F /FI "WINDOWTITLE eq C:\Windows\System32\test.exe"
ERFOLGREICH: Der Prozess mit PID 4028 wurde beendet.
ERFOLGREICH: Der Prozess mit PID 5344 wurde beendet.
ERFOLGREICH: Der Prozess mit PID 1620 wurde beendet.

Gruß - Haken ist ja zu Recht schon dran... und bitte die Test.exe in die Tionne treten - sonst testest du das nächste mal und hast ein nettes Ergebnis, das keiner auf den ersten Blick nachvollziehen kann
N:\>
Member: Skyemugen
Skyemugen Apr 19, 2011 at 11:09:27 (UTC)
Goto Top
Aloha,

das sollte per

start "Fenstername" "C:\Windows\System32\test.exe" /C "D:\Test\haengt_staendig.bat"
funktionieren.

btw: Wenn die test.exe in system32 liegt, ist der Pfad unnötig, es reicht der Name der Anwendung

Aber das benötigst du ja jetzt eh nicht mehr, diese Notlösung, da es ja per reinem Fenstertitel nach T-Mos Darstellung bereits möglich ist, den Prozess wegzufeuern.

greetz André
Member: tray-park
tray-park Apr 21, 2011 at 08:56:46 (UTC)
Goto Top
Hallo,

also, ich hab das jetzt wie folgt gemacht.

Ich habe 3 Batchdateien

1. D:\Test\haengt_staendig.bat
start C:\Windows\System32\test.exe /C D:\Test\start_haengt_staendig.bat
taskkill /F /FI "WINDOWTITLE eq C:\Windows\System32\test.exe"  

Auf meinem W7 Rechner funktioniert das einwandfrei.

Aber auf einem 2008 Server bekomme ich in der cmd folgende Meldung
Das System hat keinen Meldungstext für die Meldungsnummer 0x232b in der Meldungsdatei Application gefunden.

Nun sagen Erfahrungsberichte, dass das damit zu tun hat, dass die CMD.exe umbenannt / kopiert wurde.

Warum funktioniert das dann mit W7???

What ever.... Nur den Titel anzusprechen und dann den TASKKILL zu machen geht leider nicht.

Grüße Tray
Mitglied: 99045
99045 Apr 21, 2011 at 09:01:28 (UTC)
Goto Top
Hi,

eigentlich solltest du in der ersten Zeile jeder Batchdatei TITLE Eindeutiger Titel möglichst ohne Leerzeichen
eingeben, so lautete zumindest meine Empfehlung. Dann, wenn die Batchdatei gestartet ist, auch mit tasklist /V mal nachsehen, ob der eingegebene Titel dort als "Fenstertitel" angezeigt wird. Dann kannst du sie nämlich auch über diesen "Fenstertitel" mit taskkill gezielt löschen. Wenn das nicht geht, machst du was falsch.
Hast du das so ausprobiert?

Gruß

Edit.
Member: tray-park
tray-park Apr 21, 2011 at 09:16:49 (UTC)
Goto Top
Salut,

ich hab nun in der ersten Zeile
TITLE FENSTERTITEL
eingegeben.
Das Fenster heißt dann "Administrator: FENSTERTITEL"
so steht es auch in der tasklist /v Abfrage.

Aber . . . .
taskkill /F /FI "WINDOWTITLE eq Administrator: FENSTERTITEL"  
taskkill /F /FI "WINDOWTITLE eq FENSTERTITEL"  
taskkill /F /FI "WINDOWTITLE eq *TITEL"  
. . . geben mir immer . . .
FEHLER: Der Suchfilter wurde nicht erkannt.
zurück.

Dann scheine ich wohl was falsch zu machen.

Grüße

Tray
Mitglied: 99045
99045 Apr 21, 2011 at 09:23:48 (UTC)
Goto Top
Versuch's mal so:
taskkill /F /FI "WINDOWTITLE eq Administrator:FENSTER*"  

Unter welchem OS testest du das überhaupt?
Member: tray-park
tray-park Apr 21, 2011 at 09:38:07 (UTC)
Goto Top
Unter Windows 7 Pro 32Bit aktuell und auf einem W2K8 Enterprise 64Bit wenn es unter W7 klappt.

Nun kommt kein Fehler, sondern eine Info in der cmd:
INFORMATION: Es werden keine Aufgaben mit den angegebenen Kriterien ausgeführt.

Grüße
Mitglied: 99045
99045 Apr 21, 2011 at 09:39:45 (UTC)
Goto Top
Vermutlich ist der Batch-Prozess dann bereits beendet?

Führst du die ganze Aktion in einer Konsole, die du "Als Administrator ausführen" gestartet hast durch?
Member: tray-park
tray-park Apr 21, 2011 at 09:54:49 (UTC)
Goto Top
Kommt drauf an, an welcher Stelle er wohl beendet ist.

So der Inhalt der "D:\Test\haengt_staendig.bat"
TITLE FENSTERTITEL
@echo off
echo haengt mal wieder
pause
Ausgeführt wird sie durch einen Doppeltklick und ohne "Als Administrator ausführen".

Vielleicht wird die cmd durch Admin-Berechtigung und deaktivierter UAC bei einem Doppelklick als Administrator ausgeführt?
Mitglied: 99045
99045 Apr 21, 2011 at 10:07:46 (UTC)
Goto Top
Vielleicht wird die cmd durch Admin-Berechtigung und deaktivierter UAC bei einem Doppelklick als Administrator ausgeführt?

Nein, bei deaktivierter UAC wird sie normal für den User ausgeführt. Aber die Konsole, mit der du Tasklist ausführst, zeigt ja offensichlich an, dass du wohl doch etwas als Administrator: ausführst. Hast du für die Eingabeaufforderung die Verknüpfung vielleicht so angepasst, dass sie immer als Administrator ausgeführt wird?
(RMT > Eigenschaften > Erweitert).
Member: tray-park
tray-park Apr 21, 2011 at 11:25:50 (UTC)
Goto Top
Du meinst das Häkchen bei den erweiterten Eigenschaften der Verknüpfung "Eingabeaufforderung" oder?
Da ist kein Häkchen gesetzt, wird aber trotzdem als Admin ausgeführt.???. Komisch

Aber damit öffne die die CMD nicht. Wenn dann über Start > Ausführen > cmd oder halt direkt per doppelklick auf die Batch.
Wo kann ich einstellen, dass die Batch per doppelklick auf die Batch nicht als Admin ausgeführt wird?
Mitglied: 99045
99045 Apr 21, 2011 at 11:31:47 (UTC)
Goto Top
Ist inzwischen auch egal, jetzt weiß ich, wie es geht. .-)

1. Du musst Taskkill als Administator ausführen.
2. Du musst an den Text unbedingt ein * anfügen, weil Windows in der Konsole offenbar bis zur Länge der eingestellten Konsolenbreite Spaces anfügt.
3. Hinter Administrator: sind 2 Leerzeichen enthalten.

Also
taskkill /F /FI "WINDOWTITLE eq Administrator:  FENSTERTITEL*"  
schwupps, weg isses. face-smile

Akzeptiert wird als Wildcard nur ein einziges * am Ende, keine am Anfang, in der Mitte und keine Fragezeichen.
Member: tray-park
tray-park Apr 21, 2011 at 14:04:05 (UTC)
Goto Top
Hi,

cool, das hat funktioniert face-smile

Klappt leider noch nicht, wenn ich in der cmd.exe eine JAVA Anwendung starte. Aber ich glaube, dass gehört nicht mehr in diesen Thread.

Vielen Dank für die großartige Hilfe.

Liebe Grüße

Tray