Beenden Sie eine bestimmte Instanz des Prozesses unter Windows

1470
Probel

Ich konnte keine Hilfe für diese spezifische Frage finden und frage mich, ob sie eine Lösung hat. Ich habe mehrere Instanzen eines Programms, das unter Windows 7 ausgeführt wird. Wie kann ich ein bestimmtes Fenster beenden (möglicherweise basierend auf dem Dateinamen, der geöffnet ist)?

Hintergrund: Ich habe eine Clientanwendung für eine ETL-Software (SAS EG) auf meinem Desktop, und routinemäßig geht etwas schief und eine Sitzung bleibt stehen. Ich habe jedoch viele Sitzungen gleichzeitig geöffnet, dh mehrere Instanzen des Programms laufen auf meinem Desktop und haben jeweils eine eigene Sitzung auf dem Remote-Server. Ich möchte nur denjenigen töten, der eingefroren ist, und mit den anderen Instanzen weiterarbeiten. Ich weiß, dass es möglich ist, ich kann eine einzelne Instanz aus dem Task-Manager entfernen, aber es ist ein russisches Roulette, da die Prozesse im Task-Manager afaik nicht voneinander unterschieden werden können. Vielen Dank für jede Hilfe.

4
Gibt es einen Unterschied zwischen den Instanzen wie Befehlszeilenoptionen oder Anwendungspfad usw.? Sie können den Prozess mit der zugehörigen Prozess-ID beenden, z. B. "TASKKILL / PID 1230 / PID 1241 / PID 1253 / T" Biswapriyo vor 6 Jahren 0
Wenn Sie den [Prozess-Explorer] von SysInternals (https://docs.microsoft.com/de-de/sysinternals/downloads/process-explorer) verwenden, können Sie alle für einen Prozess geöffneten Dateien anzeigen und / oder alle Prozesse finden, die über einen Prozess verfügen eine Datei geöffnet (partieller Abgleich kann verwendet werden). AFH vor 6 Jahren 1
Haben die Windows unterschiedliche Titel? DavidPostill vor 6 Jahren 0
@AFH Danke, hört sich gut an. Leider gibt mir unsere Organisation keine lokalen Administratorrechte, daher kann ich sie möglicherweise nicht verwenden. Probel vor 6 Jahren 0
@DavidPostill Ja, die Fenster haben unterschiedliche Titel, je nachdem, welcher Dateiname geöffnet ist (in diesem Fall der Projektname). Die Titel können jedoch nicht im Task-Manager oder mit dem Befehl "tasklist" angezeigt werden Probel vor 6 Jahren 0
Der Process Explorer muss nicht installiert werden: Er wird direkt in dem Verzeichnis ausgeführt, in dem Sie ihn entpackt haben. Dies sollte ohne Administratorrechte durchaus möglich sein, es sei denn, es gibt eine Richtlinie, die die Ausführung nicht genehmigter Programme verhindert. Da es sich um ein Microsoft-Dienstprogramm handelt, sollten Sie es ohne Schwierigkeiten genehmigen lassen. AFH vor 6 Jahren 0
@AFH na ja, du hast vollkommen recht. Dies löst mein Problem zu 100%, obwohl ich immer noch erstaunt bin, dass es keine offensichtliche native Lösung gibt. Trotzdem vielen Dank! Probel vor 6 Jahren 0
@ user3589177. . . Ein paar Posts, die möglicherweise hilfreich für diese Aufgabe sind Lassen Sie mich wissen, wenn Sie Fragen, Probleme usw. haben. ** `1.` ** https://superuser.com/questions/1102108/writing-a-batch-file-to-copy-network-file-und -open-it-then-close-and-loop / 1102120 # 1102120 und ** `2.` ** https://superuser.com/questions/1002737/how-to-use-wmic-to-kill-a -cmd-exe-Instanzsuche-by-its-Befehlszeile / 1005056 # 1005056. . . Möglicherweise benötigen Sie nur einen Weg, um die PID für jede Instanz zu speichern, und dann einen Weg, um diese bei Bedarf zu referenzieren usw. Dies sollte möglich sein Pimp Juice IT vor 6 Jahren 0
Außerdem zeigt `TASKLIST / V` den Fenstertitel. Pimp Juice IT vor 6 Jahren 1

1 Antwort auf die Frage

3
DavidPostill

Wie kann ich ein bestimmtes Fenster beenden (möglicherweise basierend auf dem geöffneten Dateinamen)?

Die Fenster haben unterschiedliche Titel, je nachdem, welcher Dateiname geöffnet ist (in diesem Fall der Projektname).

Sie können Taskkill verwenden, um Prozesse mit Fenstern mit einem bestimmten Titel zu beenden .

Beispiel

Angesichts des folgenden Fensters:

enter image description here

Der Befehl zum Beenden der Notepad-Instanz, die eine Datei namens test.txt bearbeitet, ist:

taskkill /f /fi "windowtitle eq test.txt*" 

Ausgabe:

>taskkill /f /fi "windowtitle eq test.txt*" SUCCESS: The process with PID 5356 has been terminated. 

Anmerkungen:

  • Ersetzen Sie sie test.txt*durch eine Zeichenfolge, die das Fenster Ihrer Anwendung eindeutig identifiziert.

Lesen Sie weiter