Windows - Folyamatok listázása

Az operációs rendszerben futó folyamatok (processes) megjelenítésére számos módszer létezik. Hetilapunkban is írtunk már jó néhányról, de a Windows XP és a .NET szerverek még ezen a téren is újítottak és megjelent egy egyszerűen kezelhető parancssori segédprogram, mely a szokványos tulajdonságokon kívül rendelkezik sok újjal: képes felsorolni a szolgáltatáscsomagokba (pl.: svchost) futó folyamatokat, más hálózaton keresztül elérhető gépek folyamatai is megjeleníthetők és még számos hasznos lehetőség elérhető.
A folyamatok listázására sok külső gyártó is kínál megoldást, de az operációs rendszerben is található többféle segédprogram, köztük parancssoriak is a Resource Kit csomag telepítése után. A Windows XP és a .NET szerverek tartalmaznak egy új parancssori segédprogramot TASKLIST néven (elődje TLIST néven futott), mely egyforma minden operációs rendszer verzióban. Nézzük meg példákon keresztül a használatát.
A felhasználható kapcsolók megjelenítése:
tasklist /?
Aktuálisan futó folyamatok listázása:
tasklist
Ugyanez a hálózat egy másik gépén:
tasklist /s gépnév
Ahol a "gépnév" a hálózat egy távoli gépének neve vagy IP címe. Feltétel, hogy a másik gépen is rendelkezzünk elégséges jogosultsággal a feladat végrehajtásához. Ha nem, akkor meg kell adni egy felhasználói fiókot és jelszót, ami rendelkezik megfelelő jogokkal:
tasklist /s gépnév /u felh_név /p jelszó
vagy
tasklist /s gépnév /u tartomány\felh_név /p jelszó
A "tartomány" az a tartomány vagy munkacsoport, ahol a felhasználói fiók tárolódik.
Most egy elsőre talán bonyolultnak tűnő szűrőfunkció következik. Feladat, hogy csak az általunk megadott feltételeknek megfelelő folyamatokat listázza ki. Ehhez szükséges az alábbi táblázat ismerete:
Név Operátorok Érték
Status eq, ne RUNNING|NOT RESPONDING
Imagename eq, ne Bármilyen érvényes karakterlánc.
PID eq, ne, gt, lt, ge, le Bármely érvényes pozitív egész szám.
Session eq, ne, gt, lt, ge, le Bármely érvényes munkamenetszám.
SessionName eq, ne Bármilyen érvényes karakterlánc.
CPUTime eq, ne, gt, lt, ge, le Egy óó:pp:mm formátumban megadott érvényes időpont. A pp és az mm paraméterek értéke 0 és 59 közötti lehet, az óó értékeként pedig bármely érvényes, előjel nélküli számérték megadható.
Memusage eq, ne, gt, lt, ge, le Bármilyen érvényes egész szám.
Username eq, ne Bármely érvényes felhasználónév ([tartomány\]felhasználó).
Services eq, ne Bármilyen érvényes karakterlánc.
Windowtitle eq, ne Bármilyen érvényes karakterlánc.
Modules eq, ne Bármilyen érvényes karakterlánc.
Az operátorok jelentése a következő:
  • eq = egyenlő
  • ne = nem egyenlő
  • gt = nagyobb mint
  • lt = kisebb mint
  • ge = nagyobb vagy egyenlő
  • le = kisebb vagy egyenlő
Szűrőfeltételt a /fi kapcsoló után, idézőjelek között kell megadni:
A 996-os PID számú folyamat listázása:
tasklist /fi "PID eq 996"
10 000 kB-nál nagyobb memóriahasználatú folyamatok listázása:
tasklist /fi "memusage gt 10000"
Azon folyamatok listázása, melyek 1 percnél több processzoridőt vettek eddig igénybe a számítógép bekapcsolása óta:
tasklist /fi "cputime gt 00:01:00"
Lefagyott (nem válaszoló) folyamatok listázása:
tasklist /fi "status eq not responding"
Minden folyamat listázása, melyet nem a rendszer (system) futtat, hanem valamely felhasználó:
tasklist /fi "username ne system"
Illetve az ellenkezője: minden, rendszer által futtatott folyamat listázása:
tasklist /fi "username eq system"
Egy jó példa a lehetőségek széles skálájára: listázzuk az összes folyamatot, mely a "Tasklist.rtf - Microsoft Word" fejléccel rendelkező ablakban fut. Más szóval az összes Word példányt, mely a "Tasklist.rtf" dokumentumot nyitotta meg:
tasklist /fi "windowtitle eq Tasklist.rtf - Microsoft Word"
Létezik a rendszerben több összetett folyamatcsoport, ezek egy folyamatként látszanak, de valójában többet futtatnak. Tipikusan ilyen az SVCHOST. Az alábbi módszerrel lehet az alfolyamatok listáját megkapni:
tasklist /fi "imagename eq svchost.exe" /m
Ahol a /m jeleníti meg az alfolyamatokat a feltétel pedig kiszűri az összes SVCHOST.EXE példányt.
Az adott folyamatokhoz tartozó szolgáltatások (services) neveinek megjelenítése:
tasklist /svc
Megjelenésre vonatkozó kapcsolók
Alapértelmezésben táblázatos formában jelenik meg az eredmény:
tasklist /fo:table
Választhatjuk a lista formátumot is:
tasklist /fo:list
Vagy a CSV-t:
tasklist /fo:csv
Kihagyhatjuk az oszlopfejléceket:
tasklist /nh
Maximális részletességű megjelenítés:
tasklist /v