ImageX from Microsofts Assessment and Deployment Kit (free) can do it. It's designed for support technicians though, it doesn't have an end user-friendly interface. You might be able to copy the imagex.exe binary to a USB drive and run it from the Windows recovery environment, less hassle than building your own Windows PE environment from what I remember (it can't capture an image of a running OS, or "online" in ADK terms).
Also, it is primarily used for creating an image of one computer to be installed on several identical computers. Therefore you will hear "sysprep" mentioned along with ImageX, sysprep generalizes the image and removes unique computer identifiers from the image. If this image will only be used on your one computer you don't have to worry about it, but ImageX might complain about it anyway, so you may want to do it.