Why not? I mean why isn't it possible? It is currently impossible to install the USB driver on x64 versions of windows, due to signing issues, but you only want to use the network client part, so I fail to see how that would be a problem. You'll just have to deal with everything from the command line.
Hyper-V Server 2008 R2 is just a Windows Server 2008 R2 Core install with all roles but Hyper-V server disabled, some helper scripts, and the odd funky behavior here and there. If you say it is not possible from a licencing point of view, we talked with MS at this one place where I work, and they explicitly told us that things like backup agents, extended hardware drivers (HP OpenView agents, etc) and somesuch were not considered "usage", and were perfectly fine.
In fact PowerChute Network Shutdown explicitly supports Hyper-V Server 2008 and Windows Server 2008 Core with Hyper-V role installs.
I don't have any Core installs available in my lab to try it, but I'm fairly confident it would work, apcupsd has very little windows-centric requirements, it is just a service, which should in theory work. If not, a bit of hacking could make it work.
If you report it does fail to work, I will setup a test vm with a Core install and give it a try, for kicks.
Ultimately, I found out the hard way that you have to attach the right kind of serial cable. I think the USB serial cable isn't supported in Windows. Attaching a standard serial cable powered off the UPS (ouch). It wouldn't work with a serial cable for a dumb UPS. In the end I needed a 940-0024D. The relevant portion of my apcupsd.conf looks like this:
UPSCABLE smart
UPSTYPE smartups
DEVICE COM1
LOCKFILE /var/lock
UPSCLASS standalone
UPSMODE disable
Very similar to the sample.
Best Answer
In our experience there is nothing to choose between apcupsd and NUT in 'stability'.
I assume that the comment 'if the UPS fail' means 'if the power has failed, we are on UPS, and the battery life is about to run out'. This is based on running Proxmox for some years, with some opinion leavened with fact and experience.
see http://forum.proxmox.com/threads/4452-Proxmox-and-UPS-will-guests-shutdown-cleanly
apcupsd works well with many APC UPS to shut down a single UPS and machine. It is possible to configure it to shutdown other UPS but it's clunky (my opinion).
NUT works well with many makes of UPS to shut down all machines connected to that UPS (and potentially other machines connected to other UPS as well, by design). NUT is in my experience better at turning off the UPS than apcupsd which doesn’t always succeed in doing so. However NUT does not support all makes/models of UPS. For you it will probably work.
Select the UPS utility depending on what UPS you have and what else you need to control (and after testing it works in your case).
To implement properly I would recommend getting the statistics for how long it takes to shut down the VMHost and all the VMs (gathered over 10 (minimum! more is better) shutdown runs) and from that calculate the probable minimum time for Host+all VMs shutdown. Ensure that whatever timing you use with whichever client you select leaves adequate battery power to shutdown everything.
There is no guarantee that all VMs are cleanly shut down before the power goes out, and there is no guarantee that the Host is cleanly shut down before UPS battery fail if a VM hangs and does not complete a shutdown on request.
If a VM hangs then it's hung and only manual intervention will clear the situation (unless extra logic is invoked). Most of the VMs should be shutdown in most cases, and all of them will be in almost all cases in our experience.
If in doubt build an example system with the same VMs and try it out on scratch hardware to see what works best in your use case.
Further refs:
http://forum.proxmox.com/threads/14877-Shotdown-VMs-in-specific-order-when-UPS-initiates-shutdown-of-the-node (Proxmox UPS shutdown behaviour)