Überwachung von Prozessen mit der Command Line
Hallo zusammen!
Ich will eine kurze Anwendung schreiben die über das cmd überwacht ob ein Prozess am laufen ist oder nicht.
Meine erste Idee war folgende:
tasklist |findstr /I process.exe>NUL && if %errorlevel% GEQ 0 mkdir C:\running
Das ganze passiert in einem C# programm und läuft in einer Schleife jede Sekunde ab. In der while Schleife wird auch überprüft ob das Verzeichnis C:\running vorhanden ist, wenn ja soll er es löschen so dass es keine Porbleme mit dem Überschreiben gibt.
Dies funktioniert soweit auch, aber wenn dies in der while Schleife läuft funktioniert es 2 durchläufe dann wieder nicht, obwohl sich am Prozess nichts ändert.
Ganzer Code:
while (true)
{
RunInShell("C:\\Windows\\System32", "cmd.exe", "/C tasklist |findstr /I " + processName + ">NUL && if %errorlevel% 0 mkdir C:\\running");
bool exists = virtualMachine.DirectoryExistsInGuest("C:\\running");
if (exists)
{
virtualMachine.DeleteDirectoryFromGuest("C:\\runing");
Thread.Sleep(1000);
}
else
{
break;
}
}
Ich hoffe das mir jemand helfen kann bzw. selbst noch andere Lösungsvorschläge hat.
Vielen Dank und Gruß
Lukas
Ich will eine kurze Anwendung schreiben die über das cmd überwacht ob ein Prozess am laufen ist oder nicht.
Meine erste Idee war folgende:
tasklist |findstr /I process.exe>NUL && if %errorlevel% GEQ 0 mkdir C:\running
Das ganze passiert in einem C# programm und läuft in einer Schleife jede Sekunde ab. In der while Schleife wird auch überprüft ob das Verzeichnis C:\running vorhanden ist, wenn ja soll er es löschen so dass es keine Porbleme mit dem Überschreiben gibt.
Dies funktioniert soweit auch, aber wenn dies in der while Schleife läuft funktioniert es 2 durchläufe dann wieder nicht, obwohl sich am Prozess nichts ändert.
Ganzer Code:
while (true)
{
RunInShell("C:\\Windows\\System32", "cmd.exe", "/C tasklist |findstr /I " + processName + ">NUL && if %errorlevel% 0 mkdir C:\\running");
bool exists = virtualMachine.DirectoryExistsInGuest("C:\\running");
if (exists)
{
virtualMachine.DeleteDirectoryFromGuest("C:\\runing");
Thread.Sleep(1000);
}
else
{
break;
}
}
Ich hoffe das mir jemand helfen kann bzw. selbst noch andere Lösungsvorschläge hat.
Vielen Dank und Gruß
Lukas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 148760
Url: https://administrator.de/forum/ueberwachung-von-prozessen-mit-der-command-line-148760.html
Ausgedruckt am: 14.05.2025 um 18:05 Uhr
3 Kommentare
Neuester Kommentar