How to restart service remotely?

前端 未结 3 1536
南笙
南笙 2021-02-07 10:57

I can start or stop service remotely from .net project.

ConnectionOptions options = new ConnectionOptions();
options.Username = @\"192.168.36.22\\test\";
options         


        
相关标签:
3条回答
  • 2021-02-07 11:29

    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.

    0 讨论(0)
  • 2021-02-07 11:35

    I have come across a similar problem when I tried to connect, just add your machine name as admin in the 'users' group of the target machine and you will be able to fetch the data.

    0 讨论(0)
  • 2021-02-07 11:44

    Service controller didn't work for me, so I used Cmd to do it.

    Process.Start("CMD.exe", "/C sc \\\\remoteMachine stop \"serviceName\"&sc \\\\remoteMachine start \"serviceName\"");
    

    To overcome credentials issue, I used class from this https://stackoverflow.com/a/5433640/2179222 answer.

    So in the end It looked like this:

        private static void RestartService(string remoteMachine, string serviceName, string userName, string password)
        {
            using (new NetworkConnection($"\\\\{remoteMachine}", new NetworkCredential(userName, password)))
            {
                Process.Start("CMD.exe", $"/C sc \\\\{remoteMachine} stop \"{serviceName}\"&sc \\\\{remoteMachine} start \"{serviceName}\"");
            }
        }
    
    0 讨论(0)
提交回复
热议问题