Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Prozess per PID killen - Bestimmte Zeichenfolge aus Txt-Datei in Batch-Datei nutzen

Frage Entwicklung Batch & Shell

Mitglied: raffi3110

raffi3110 (Level 1) - Jetzt verbinden

07.11.2008, aktualisiert 13.11.2008, 7009 Aufrufe, 4 Kommentare

Hallo zusammen,
ich habe folgendes Problem. Ich schreibe gerade an einer Batchdatei und bin an einen Punkt gelangt wo ich nicht mehr durch Recherche weiterkomme.

Warum ich diese Batchdatei brauche ist dieser Grund:
Der User soll wenn ihm der Prozess UNWICHTIG.EXE hängen bleibt diesen Prozess durch ausführen der Batchdatei schließen können. Problem bei diese Sache ist jetzt aber man kann nicht einfach hergehen und den Befehl:

@echo off
echo.
echo Unwichtig wird beendet
echo.
taskkill /im UNWICHTIG.EXE

in die Batchdatei schreiben. Da diese Batchdatei im Netzwerk ausgeführt wird und dort mehrere UNWICHTIG.EXE Prozesse von verschiedenen Usern laufen.
Darum bin ich hergegangen und habe mir versucht die PID des Prozesses zu suchen und diesen dann mittels der PID zu beenden.

Zuerst habe ich mir die txt-Dati "var" erstellt. Danach habe ich mir die tasklist als CSV generiert und danach mir komplett alle Angaben zum Prozess UNWICHTIG.EXE geholt und in die txt-Datei geschrieben.

@echo off
echo.
echo unwichtig killen
echo.

var.txt
tasklist /FO "CSV" /FI "IMAGENAME eq UNWICHTIG.EXE" > var.txt


Problem ist das ich nicht weiß wie ich wie ich jetzt die PID aus der txt-Datei bekomme und wieder in die Batchdatei um den Prozess per PID zu schließen.

Gibt es vielleicht auch eine andere Möglichkeit? Vielleicht denke ich zu kompliziert.
Es muss aber vollautomatisch sein da die User nicht wissen sollen wie die Batchdatei das macht.

Ich hoffe ich habe das Problem hinreichend erklärt.

Ich danke für jede Antwort.
Mit freundlichen Grüßen Raffi

P.S. Ich hatte echt Probleme eine angemessene Überschrift zu finden für diese Problem ich hoffe das geht
Mitglied: Ren
11.11.2008 um 15:01 Uhr
ich habe es zwar noch nicht ganz verstanden, weiß vor allem nicht, ob in der var.txt jetzt mehrere Prozesse mit dem Namen auftauchen, oder exakt einer, aber grundlegend wäre die Idee dir for-Schleife:
01.
FOR /F "tokens=2 delims=," %i IN ('type "var.txt"') DO set pid=%i 
02.
set pid=%pid:~1,-1% 
03.
taskkill /PID %pid%
Das ganze geht natürlich nur, wenn es nur einen Prozess mit dem Namen gibt, das Beispiel würde sonst die letzte PID nehmen. Aber in diesem Bezug habe ich dein Problem noch nicht so 100%tig verstanden.
Hoffe, ich konnte weiterhelfen
Bitte warten ..
Mitglied: raffi3110
11.11.2008 um 16:22 Uhr
Wir betreiben ein WTS System wo jeder User seine Session hat. Öffters stürzt ein bestimmter Prozess ab und wir müssen diesen immer wieder killen. Das ist auf dauer nervig und lenkt uns von wichtigeren dingen ab. Deswegen dachten wir uns eine Batschdatei zu schreiben mit der die User selber den Prozess schließen können.

Durch Gruppenrichtlinien können/dürfen die User den Taskmanager nicht öffnen. Daher müssen wir das immer machen.

Es gibt mehrere Prozesse die gleichnamig sind aber sich durch den Nutzer und die PID unterscheiden.

Ich habe das versucht was für mich logisch war, aber kann sein das das Falsch war, weil ich mich in diesem Thema nicht auskenne.
Danke für die schnelle antwort.
Mit freundlichen Grüßen Raffi

P.S. ich hoffe ich konnte den Nebel des Problems ein bisschen lichten.
Bitte warten ..
Mitglied: Biber
11.11.2008 um 17:32 Uhr
Moin raffi3110,

Du kannst doch den Filter um eine weitere Bedingung erweitern.
Vorarbeit am CMD-Prompt (proof-of-concept):
01.
tasklist /FO "CSV" /FI "IMAGENAME eq UNWICHTIG.EXE" /FI "username eq %username%" 
02.
-oder- 
03.
tasklist /Fo list  /FI "IMAGENAME eq UNWICHTIG.EXE" /FI "username eq %username%"|find /i "PID:"
... und danach die eigentliche Aufgabe IMHO einfacher so handeln:
01.
taskkill  /FI "IMAGENAME eq INWICHTIG.EXE" /FI "username eq %username%"|find /i "PID:"
[TaskKill ggf. mit Parameter /F, siehe TaskKill /?]

Grüße
Biber
Bitte warten ..
Mitglied: raffi3110
13.11.2008 um 09:52 Uhr
Hallo
danke für eure Beiträge haben mir sehr viel weitergehlofen. Mein Kollege und ich haben dann noch ein bisschen weiterdaran gearbeitet und sind dann zu dieser Lösung gekommen.
01.
@echo off 
02.
 
03.
TITLE Prozess beenden 
04.
COLOR F1 
05.
 
06.
 
07.
:ANFANG 
08.
CLS 
09.
 
10.
echo. 
11.
echo  Sie koennen ausgewaehlte Programme gewaltsam beenden. 
12.
echo  Waehlen Sie hierzu eine der folgenden Kennziffern: 
13.
echo. 
14.
echo  Aktion:                   Kennziffer: 
15.
echo  ===================================== 
16.
echo. 
17.
echo  Prozess1 beenden              W 
18.
echo  Prozess2 beenden              E 
19.
echo. 
20.
echo  Aktionen abbrechen            X 
21.
echo  _____________________________________ 
22.
echo. 
23.
echo. 
24.
echo  Bestaetigen Sie Ihre Eingabe mit ENTER. 
25.
echo. 
26.
echo. 
27.
 
28.
 
29.
SET /P EINGABE=Eingabe: 
30.
 
31.
 
32.
 
33.
IF %EINGABE%==w GOTO eingabe%EINGABE% 
34.
IF %EINGABE%==W GOTO eingabe%EINGABE% 
35.
IF %EINGABE%==e GOTO eingabe%EINGABE% 
36.
IF %EINGABE%==E GOTO eingabe%EINGABE% 
37.
IF %EINGABE%==x GOTO eingabe%ENDE2% 
38.
IF %EINGABE%==X GOTO eingabe%ENDE2% 
39.
 
40.
GOTO ERRORMARKE 
41.
 
42.
 
43.
REM ------------------ Prozess1 beenden ---------------------------------------------- 
44.
 
45.
:eingabeW  
46.
 
47.
echo. 
48.
echo Prozess Prozess1 beenden 
49.
echo. 
50.
 
51.
SET KillProz=PROZESS1.EXE 
52.
SET KillTemp=$var.txt 
53.
SET pid= 
54.
 
55.
TASKLIST /FO "CSV" /FI "IMAGENAME EQ %KillProz%" /FI "SESSIONNAME EQ %SESSIONNAME%" > %KillTemp% 
56.
FOR /F "tokens=2 delims=," %%i IN ('type "%KillTemp%"') DO SET pid=%%i 
57.
IF %pid%x==x GOTO ENDE 
58.
SET pid=%pid:~1,-1% 
59.
TASKKILL /T /F /PID %pid% >NUL 
60.
 
61.
 
62.
SET pid= 
63.
 
64.
TASKLIST /FO "CSV" /FI "IMAGENAME EQ %KillProz%" /FI "SESSIONNAME EQ %SESSIONNAME%" > %KillTemp% 
65.
FOR /F "tokens=2 delims=," %%i IN ('type "%KillTemp%"') DO SET pid=%%i 
66.
IF %pid%x==x GOTO ENDE 
67.
SET pid=%pid:~1,-1% 
68.
TASKKILL /T /F /PID %pid% >NUL 
69.
 
70.
 
71.
SET pid= 
72.
 
73.
TASKLIST /FO "CSV" /FI "IMAGENAME EQ %KillProz%" /FI "SESSIONNAME EQ %SESSIONNAME%" > %KillTemp% 
74.
FOR /F "tokens=2 delims=," %%i IN ('type "%KillTemp%"') DO SET pid=%%i 
75.
IF %pid%x==x GOTO ENDE 
76.
SET pid=%pid:~1,-1% 
77.
TASKKILL /T /F /PID %pid% >NUL 
78.
 
79.
GOTO ENDE 
80.
 
81.
 
82.
REM ------------------ Prozess2 beenden ---------------------------------------------- 
83.
 
84.
:eingabeE  
85.
 
86.
echo. 
87.
echo Prozess Prozess2 beenden 
88.
echo. 
89.
 
90.
SET KillProz=PROZESS2.EXE 
91.
SET KillTemp=$var.txt 
92.
SET pid= 
93.
 
94.
TASKLIST /FO "CSV" /FI "IMAGENAME EQ %KillProz%" /FI "SESSIONNAME EQ %SESSIONNAME%" > %KillTemp% 
95.
FOR /F "tokens=2 delims=," %%i IN ('type "%KillTemp%"') DO SET pid=%%i 
96.
IF %pid%x==x GOTO ENDE 
97.
SET pid=%pid:~1,-1% 
98.
TASKKILL /T /F /PID %pid% >NUL 
99.
 
100.
 
101.
SET pid= 
102.
 
103.
TASKLIST /FO "CSV" /FI "IMAGENAME EQ %KillProz%" /FI "SESSIONNAME EQ %SESSIONNAME%" > %KillTemp% 
104.
FOR /F "tokens=2 delims=," %%i IN ('type "%KillTemp%"') DO SET pid=%%i 
105.
IF %pid%x==x GOTO ENDE 
106.
SET pid=%pid:~1,-1% 
107.
TASKKILL /T /F /PID %pid% >NUL 
108.
 
109.
 
110.
SET pid= 
111.
 
112.
TASKLIST /FO "CSV" /FI "IMAGENAME EQ %KillProz%" /FI "SESSIONNAME EQ %SESSIONNAME%" > %KillTemp% 
113.
FOR /F "tokens=2 delims=," %%i IN ('type "%KillTemp%"') DO SET pid=%%i 
114.
IF %pid%x==x GOTO ENDE 
115.
SET pid=%pid:~1,-1% 
116.
TASKKILL /T /F /PID %pid% >NUL 
117.
 
118.
GOTO ENDE 
119.
 
120.
 
121.
REM ------------------ ERROR Meldung ---------------------------------------------- 
122.
 
123.
:ERRORMARKE 
124.
 
125.
echo. 
126.
echo  -------------------------------------------------------  
127.
echo    Es wurde die ungueltige Taste "%EINGABE%" gedrueckt. 
128.
echo  -------------------------------------------------------  
129.
echo. 
130.
echo. 
131.
 
132.
PAUSE 
133.
 
134.
GOTO ANFANG 
135.
 
136.
REM ------------------ ENDE ---------------------------------------------- 
137.
 
138.
:ENDE 
139.
 
140.
DEL %KillTemp% 
141.
 
142.
:ENDE2 
143.
 
144.
 
Zur Erklärung wir haben mehrmals den Code für Prozess schließen in die Batchdatei getan, weil die User manchmal mehrere Prozesse mit gleichen Namen haben und damit diese dann auch beendet werden.

Nochmals vielen dank für eure Hilfe

Mit freundlichen Grüßen Raffi
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
Ungewöhnliche Txt.Datei-Abfrage mit Batch (3)

Frage von DaTobsn zum Thema Batch & Shell ...

Webentwicklung
gelöst HTML Output in eine txt Datei mit VisualBasicScript (2)

Frage von coca22COCA zum Thema Webentwicklung ...

Batch & Shell
Merkwürdige Zeilenformatierung in txt Datei (3)

Frage von miczar zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (27)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...