# Prozessliste von Windows auslesen?



## BeaTBoxX (27. Juni 2005)

Hallo,

ich hab folgendes Problem: Ich soll unter Windows  mit einem Script bei einem Schwung Rechner checken , ob eine gewisser Prozess läuft.
Nun würde ich gern wissen ob es ein Windoof Äquivalent zum Unix/Linux "ps x" gibt ?

Sprache soll mal zweitrangig sein. (C, Java, Perl ?)

Könnt ihr mir sagen, wie man an soetwas herankommt ?


Vielen Dank

Gruß
Frank


----------



## matdacat (27. Juni 2005)

Unter WinXP Pro gibts dafür den Befehl 'tasklist'.


----------



## Dennis Wronka (28. Juni 2005)

Es gaebe da auch noch die PsTools.
Welche aehnliche Befehle und Funktionen bietet wie man sie von Linux her kennt.

Waere doch nur alles so einfach wie's mit Linux ist...


----------



## BeaTBoxX (28. Juni 2005)

Danke diese Tools werde ich mir mal ansehen.
Allerdings brauch ich das ganze fuer Win2000 was die Tasklist Sache leider überfluessig macht :/

Danke trotzdem soweit, evtl hat ja noch wer einen Geistesblitz 


Gruß
Frank


----------



## Sven Mintel (28. Juni 2005)

Wenn WMI läuft, reicht ein bisschen JScript(oder VBS):

```
//JScript
wmi       = GetObject( 'winmgmts:' );
query     = new Enumerator(wmi.ExecQuery( 'select * from win32_process' ));
processes = '> > > > Grad am Start\n\n';

for (; !query.atEnd(); query.moveNext())
    {
        processes += query.item().name + ':\t' +
                     query.item().ExecutablePath + '\n';
    }

WScript.Echo( processes );
```


----------



## BeaTBoxX (29. Juni 2005)

Hmmm ma gucken.. danke


----------



## Christian Kusmanow (29. Juni 2005)

Mit .Net so:

```
C#
using System;
using System.Diagnostics;

namespace ProcessService {
	public class ProcessService {
		public ProcessService(){}

		public static void Main( string[] args ) {
			if ( args != null )
				Console.WriteLine( string.Format( "Es existieren {0} Instanzen des Prozesses {1}", CheckForProcess( args[0] ), args[0] ) );
			else
				Console.WriteLine( "Bitte den Namen des Prozesses ohne Dateiendung angeben!" );
		}

		public static int CheckForProcess( string Name ){
			Process[] processes;
			if ( ( processes = Process.GetProcessesByName( Name ) ) != null )
				return processes.Length;
		return 0;
		} 
	}
}
```
MfG, cosmo


----------



## Alexander Schuc (29. Juni 2005)

cosmochaosmaker hat gesagt.:
			
		

> Mit .Net so...



Process.GetProcesses() wäre wohl angebrachter. Sind ja alle laufenden Prozesse gefragt.


----------



## Christian Kusmanow (29. Juni 2005)

Hallo Alex!

Wie kommst Du jetzt darauf? Er wollte doch wissen





			
				BeaTBoxX hat gesagt.:
			
		

> ob eine gewisser Prozess läuft.


Process.GetProcessesByName( Name ) sollte doch die Arbeit erspaaren
duch alle mit Process.GetProcesses() abgerufenen Prozesse selber duch iterieren zu müssen
um festzustellen ob der gefragte Prozess da ist.

Hab ich etwa was falsch verstanden?


----------



## Alexander Schuc (29. Juni 2005)

Mh.. ok, hab ich nun zuschnell gelesen. Dacht geht jetzt mal nur um alle Prozesse. Mein Fehler.


----------

