Подробный список процессов

Все мы иногда интересуемся состоянием операционной системы. Количеством израсходованной памяти, нагрузкой на процессор, загруженностью сетевого интерфейса и т.д. В нормальных (POSIX) системах мы привыкаем к тому, что снимать подобные метрики очень просто при помощи небольших и простых программ, таких как top, ps, free. Так же можно получить подробную статистику по процессу,просматривая файл /proc/<PID>/status.

В системах производства Microsoft таким вещам внимания практически не уделили, поэтому мы должны довольствоваться диспетчером задач, который в списке процессов показывает только basename исполняемого файла, оставляя за кадром все параметры командной строки ( где же мой ps -aux?).

В 7й Windows ситуация улучшена и диспетчер задач умеет показывать подробности, но что делать счастливым обладателям XPюшки?

Представляю вашему вниманию ps-aux для XP. Это небольшой VB-скиптик, который уже подарил мне счастье, надеюсь — подарит и вам.

Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objService = 
 GetObject("winmgmts:{impersonationLevel=impersonate}!\\localhost\root\CIMV2")
buf = ""
for each proc in objService.ExecQuery("Select CommandLine from Win32_Process")
                buf = buf & Proc.CommandLine & vbCrLf
Next
WScript.Echo buf

Комменты