What is the best way to install a windows service written in C# (in the standard way) on a remote machine, where I need to provide the username and password it should run as
It might be worth you checking out a utility I wrote which lets you install/uninstall/start/stop windows services on a local or remote machine. If you have a feature you need added let me know (comment/github issues or PM and I'll happily oblige).
ServiceConfigurator on GitHub
As @Raj More suggested, it uses WMI invoked from .NET.