I can start or stop service remotely from .net project.
ConnectionOptions options = new ConnectionOptions();
options.Username = @\"192.168.36.22\\test\";
options
You could use the ServiceController class like so:
ServiceController sc = new ServiceController("ArcGIS Server", "192.168.36.22");
sc.Start();
sc.Stop();
This saves you having to write all that code to interact with WMI. Note to use the ServiceController class, you'll have to add a reference to the System.ServiceProcess assembly.