Prüfen ob Prozess auf Remotecomputer läuft und dann beenden
Ein freundliches Hallo Zusammen,
ich habe folgendes Problem....
ich möchte mit einer batch Prüfen ob auf dem Remotecomputer ein Prozess läuft, und wenn ja dann beenden.
Das beenden funktioniert mit dem script.... nur wenn der Prozess nicht läuft bekomm ich eine Fehlermeldung das der Prozess nicht gefunden werden kann.
Das verwirrt die User und ich bekomme dauern anrufe.
Daher wäre es schön, wenn der Befehl nur aufgeführt wird, wenn der Prozess läuft..... leider bekom ich das mit dem IF nicht hin.
script:
echo off
set PGHOST=SchulungsServer
IF tasklist /S Schulungsserver /fi "imagename eq solutio.exe"
\\%PGHOST%\c$\windows\system32\taskkill /S %PGHOST% /f /IM solutio.exe /T
pause
hoffe jemand kann mir da helfen.
LG Frank
ich habe folgendes Problem....
ich möchte mit einer batch Prüfen ob auf dem Remotecomputer ein Prozess läuft, und wenn ja dann beenden.
Das beenden funktioniert mit dem script.... nur wenn der Prozess nicht läuft bekomm ich eine Fehlermeldung das der Prozess nicht gefunden werden kann.
Das verwirrt die User und ich bekomme dauern anrufe.
Daher wäre es schön, wenn der Befehl nur aufgeführt wird, wenn der Prozess läuft..... leider bekom ich das mit dem IF nicht hin.
script:
echo off
set PGHOST=SchulungsServer
IF tasklist /S Schulungsserver /fi "imagename eq solutio.exe"
\\%PGHOST%\c$\windows\system32\taskkill /S %PGHOST% /f /IM solutio.exe /T
pause
hoffe jemand kann mir da helfen.
LG Frank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 215971
Url: https://administrator.de/forum/pruefen-ob-prozess-auf-remotecomputer-laeuft-und-dann-beenden-215971.html
Ausgedruckt am: 15.04.2025 um 09:04 Uhr
29 Kommentare
Neuester Kommentar
Nur der vollständigkeit halber:
: Änderung in Zeile 6 : Warum taskkill vom Zielsystem auf deinem System ausführen, um dann auf dem Ziel etwas zu beenden? Geändert auf die lokale Anwendung
@echo off
set PGHOST=SchulungsServer
tasklist /S %PGHOST% /fi "imagename eq solutio.exe" 1>nul 2>nul
if %ERRORLEVEL% EQU 0 (
taskkill /S %PGHOST% /f /IM solutio.exe /T
)
- Änderung in Zeile 4
- Du benutzt eh schon PGHOST als Variable für den Servernamen. Dann bitte auch durchgängig.
- Änderung in Zeile 5
- Ausführen wenn
ERRORLEVEL
0 ist. Immerhin soll der Task beendet werden, wenn das auffinden ERFOLGREICH war.
: Änderung in Zeile 6 : Warum taskkill vom Zielsystem auf deinem System ausführen, um dann auf dem Ziel etwas zu beenden? Geändert auf die lokale Anwendung
Funktioniert jetzt also?
Dann: Wie kann ich einen Beitrag als gelöst markieren?
Dann: Wie kann ich einen Beitrag als gelöst markieren?
Generelles debugging: NImm
Ist
Und warum gibst du den vollen Pfad zu robocopy mit, wenn
@echo off
raus und starte die batch per cmd. Dann siehst du, was das letzte command war.Ist
wait
eigentlich auf deinen Systemen vorhanden? Ist nämlich nicht standard.Und warum gibst du den vollen Pfad zu robocopy mit, wenn
%windir%\system32
doch eh ein Standardpfad für Befehle ist? \\%PGHOST%\c$\windows\system32\tasklist /s %PGHOST% /fi "imagename eq solutio.exe" 2>nul
Dann werden auch nur Fehlermeldungen ins Nirvana geleitet.
Zitat von @Snowman25:
> Zitat von @Budders:
> ----
Dann werden auch nur Fehlermeldungen ins Nirvana geleitet.
> Zitat von @Budders:
> ----
\\%PGHOST%\c$\windows\system32\tasklist /s %PGHOST% /fi "imagename eq solutio.exe" 2>nul
Dann werden auch nur Fehlermeldungen ins Nirvana geleitet.
Wenn der Prozess nicht gefunden wird aber eine Information ausgegeben. Also wenn, dann
\\%PGHOST%\c$\windows\system32\tasklist /s %PGHOST% /fi "imagename eq solutio.exe" 1>nul
\\%PGHOST%\c$\windows\system32\tasklist /s %PGHOST% /fi "imagename eq solutio.exe">nul
würde ich sagen..
MfG Budders/Gerrit
Zitat von @Mit.ohne.Ahnung:
Information: Es werden keine Aufgaben mit den angegebenen Kriterien ausgeführt. ..... und die bekannte Fehlermeldung.
Information: Es werden keine Aufgaben mit den angegebenen Kriterien ausgeführt. ..... und die bekannte Fehlermeldung.
uhm... Ich dachte, es geht dir um die Information? Welche Fehlermeldung denn?
Und ja. Das IF sollte den taskkill abfangen, wenn solutio NICHT in der Tasklist auftaucht.
Um das ganze hier nun endlich zu beenden:
Tasklist gibt immer 0 zurück egal ob Task gefunden oder nicht, deshalb funktionieren die obigen Lösungen nicht.
Das geht:
Grüße Uwe
Tasklist gibt immer 0 zurück egal ob Task gefunden oder nicht, deshalb funktionieren die obigen Lösungen nicht.
Das geht:
\\%PGHOST%\c$\windows\system32\tasklist /s %PGHOST% /fi "imagename eq solutio.exe" | find /i "solutio.exe" >nul
if %errorlevel% == 0 (
\\%PGHOST%\c$\windows\system32\taskkill /S %PGHOST% /f /IM solutio.exe /T >nul
)
Grüße Uwe