How to monitor and record processes on Windows?

I need to be able to record overall CPU, RAM, IO, and running processes (and their individual CPU, RAM, IO) metrics on Windows machines. The per process part is the tricky bit. Has anybody here tackled something like this before?