The precursor to the problem is described in this note but in terms of much Windows programming jargon. Here I guess a few things about Windows. (A bit of Hermeneutics). Please correct me if I am wrong (norm at cap-lore dot com).
... the Win32 API has a friendly little function called PostThreadMessage(). Enumerating processes is not a privileged operation, so you can get a PID for a localsystem [sysadmin] process with no problems. The ToolHelp functions allow you to also enumerate the threads for that process ... So, you have a list of all threads running as LocalSystem on the machine. PostThreadMessage will send any message you like to any thread you like, assuming that thread has implemented a message queue. No, you don't have to call OpenProcess(). No, there are no privileges involved.