I'm still not managing to see where sshd fits into your question - unless you envision taking its code and turning it into your rpc server, which seems like severe overkill.
Yes, it is really trivial functionality. Start with Win32::Daemon; take the first part of the first example straight out of the pod:
use Win32::Daemon;
# Tell the OS to start processing the service...
Win32::Daemon::StartService();
# Wait until the service manager is ready for us to continue...
while( SERVICE_START_PENDING != Win32::Daemon::State() )
{
sleep( 1 );
}
# Now let the service manager know that we are running...
Win32::Daemon::State( SERVICE_RUNNING );
followed by the single-threaded server code straight out of the perl doc at
http://perldoc.perl.org/perlipc.html#TCP-Servers-with-IO%3a%3aSocket,
modified to just run your sysadm program and return its output in the
body of the accept loop.
(Untested...)