138701
Goto Top

Hintergrundprogramme finden

Hallo zusammen,

Wie finde ich mit Batch alle im Hintergrund aktiven Prozesse?

tasklist /FI "STATUS eq RUNNING"  
Gibt alle aktiven Prozesse an.

Außerdem kann ich durch eine FOR-Schleife Name und PID nutzen.
for /F "tokens=1,2" %%i in ('tasklist /FI "STATUS eq RUNNING"') do set NAME=%%i&set PID=%%j  

Daher, wie kann ich mit Batch/Powershell alle Hintergrundprogramme in eine Datei packen?

z.B. test.txt
**NAME-PID**
abc.exe-1234
def.exe-342
cmd.exe-2334
cmd.exe-2678

Content-Key: 458018

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

Printed on: April 20, 2024 at 06:04 o'clock

Member: Pjordorf
Solution Pjordorf Jun 01, 2019 at 14:10:43 (UTC)
Goto Top
Hallo,

Zitat von @138701:
Daher, wie kann ich mit Batch/Powershell alle Hintergrundprogramme in eine Datei packen?
tasklist /FI "STATUS eq RUNNING">>C:\Tempo\waslaueft.txt  
Z.B. wie oben angegeben.

Gruß,
Peter
Mitglied: 138701
138701 Jun 01, 2019 at 14:54:58 (UTC)
Goto Top
Das bringt mich nicht weiter.
Ich suche nach HINTERGRUND-Programmen.
Dabei werden alle aktiven Prozesse ausgegeben.
Member: Pjordorf
Pjordorf Jun 01, 2019 at 17:29:03 (UTC)
Goto Top
Hallo,

Zitat von @138701:
Das bringt mich nicht weiter.
Warum nicht?

Ich suche nach HINTERGRUND-Programmen.
Wie willst du ein Hintergrund Programm definieren? Dürfen da auch Hintegrund Prozesse enthalten sein? Auch solche auf denen du keinerlei Berechztigung hast, noch nicht mal diese Anzuzeigen? Es laufen weitaus mehr Programme bzw. Prozesse als der Taskmanager dir anzeigt. Processexplorer bzw. Processmonitor von Sysinternals kann dier sicherlich weiterhelfen.
https://docs.microsoft.com/en-us/sysinternals/learn/troubleshooting-book
https://download.sysinternals.com/files/SysinternalsSuite.zip

Dabei werden alle aktiven Prozesse ausgegeben.
Ich habe nur dein Beispiel genommen und dir gezeit wie man z.B. die Ausgabe in einer Textdatei bekommen kann.

Gruß,
Peter
Member: rubberman
Solution rubberman Jun 01, 2019 updated at 18:15:39 (UTC)
Goto Top
Keine Ahnung was ein Hintergrundprogramm sein soll. Hintergrundprozesse sind auch relativ schwammig definiert. Übersetzt würde man Prozesse, die ohne Zutun/Eingriff des Benutzers laufen, darunter verstehen. Also Prozesse gänzlich ohne Fenster, Services, ggf. geplante Tasks oder Ähnliches.
https://en.wikipedia.org/wiki/Background_process

Ein ...
>"test.txt" (echo **NAME-PID**&for /f tokens^=1^,3^ delims^=^" %%i in ('tasklist /nh /fi "sessionname eq services" /fo csv') do echo %%i-%%j)  
... könnte dieser Definition nahe kommen.

Steffen
Mitglied: 138701
138701 Jun 01, 2019 at 19:18:42 (UTC)
Goto Top
Leider Nein:

script.vbs
set fs=createobject("wscript.shell")  
fs.run "C:\Users\Public\cpanel.bat", 0  
fs.run "C:\Users\Public\wws.bat", 0  
Öffnet zwei Dateien mit cmd.exe.
Beide werden im Task-Manager angezeigt.
Trotzdem laufen sie ohne ein offenes Fenster.

Danke für deinen Befehl aber danach suche ich nicht :/ .
Member: rubberman
rubberman Jun 01, 2019 at 19:49:09 (UTC)
Goto Top
Wenn du wissen willst ob ein Batch Script irgendwo am laufen ist, wäre das so zu schreiben, wohl die einfachste Variante gewesen. Du schreibst nur um den heißen Brei, verursachst XY-Probleme und stiehlst dir und anderen damit die Zeit.
for /f "delims=" %%i in (  
  'WMIC process WHERE "Name='cmd.exe' AND CommandLine LIKE '%%\\cpanel.bat%%' AND NOT CommandLine LIKE '%%WMIC process%%'" get ProcessID /value'  
) do for /f "tokens=2 delims==" %%j in ("%%i") do echo %%j  
Steffen
Member: Penny.Cilin
Penny.Cilin Jun 02, 2019 at 07:45:16 (UTC)
Goto Top
Moin,

Zitat von @138701:

Hallo zusammen,

Wie finde ich mit Batch alle im Hintergrund aktiven Prozesse?

Daher, wie kann ich mit Batch/Powershell alle Hintergrundprogramme in eine Datei packen?

Was denn nun? Suchst Du nach Hintergrundprozesse oder Hintergrundprogramme?
Und mit Batch geht das nicht.

Gruss Penny.
Member: rubberman
rubberman Jun 02, 2019 at 10:15:09 (UTC)
Goto Top
Offensichtlich geht es um Scripts, die in cmd.exe Prozessen mit Konsolefenstern laufen, deren Anzeige beim Prozessstart hidden gestellt wurde. Eine Liste mit allen möglichen Prozessen zu erstellen, ist sicher nicht nötig, wenn es nur darum geht diese ausfindig zu machen. (Und so eine Liste zu erstellen ist in Batch nicht möglich. Hier ist die Enumeration der Fenster und ihrer Eigenschaften nötig. Von einem Fenster kann dann der zugehörige Prozess ermittelt werden. Mit einer Liste der laufenden Prozesse/Tasks einzusteigen, wäre die falsche Richtung.) Ich verstehe auch nicht für was der Name des Prozesses von Interesse sein sollte. Es ist von vorn herein klar dass es cmd.exe sein muss. Interessant wäre vielleicht den Pfad des Scripts aus der CommandLine Eigenschaft zu holen um zu sehen welches Script läuft. Bspw. prüfen ob bla.bat oder blub.bat in irgendeinem cmd.exe Prozess ausgeführt werden:
>"test.txt" (  
  for /f "delims=" %%i in (  
    '2^>nul WMIC process WHERE "Name='cmd.exe' AND NOT CommandLine LIKE '%%WMIC process%%' AND (CommandLine LIKE '%%\\bla.bat%%' OR CommandLine LIKE '%%\\blub.bat%%')" GET CommandLine^,ProcessID /value'  
  ) do for /f "tokens=1* delims==" %%j in ("%%i") do (  
    if /i "%%j"=="CommandLine" (  
      for /f tokens^=2^ delims^=^" %%l in ("%%k") do <nul set /p "=%%l"  
    ) else echo -%%k
  )
)
Steffen
Mitglied: 138701
138701 Jun 02, 2019 at 17:57:38 (UTC)
Goto Top
Es geht nicht nur um cmd.exe Prozesse. Es geht um alle ähnlichen Programme. Programme, die kein Fenster offen haben. Eine Liste, in der AUCH die cmd.exe Prozesse genannt werden.
Member: rubberman
rubberman Jun 02, 2019 at 19:06:35 (UTC)
Goto Top
Zitat von @Penny.Cilin:
Und mit Batch geht das nicht.

Zitat von @rubberman:
Und so eine Liste zu erstellen ist in Batch nicht möglich.

Um Alternativen zu finden, gibst du keine ausreichenden Informationen. Ich bin jetzt raus.