C#使用SC命令,控制windows服务参数

查看服务:

ServiceController[] services = ServiceController.GetServices();
foreach (ServiceController sController in services)
{
      Console.WriteLine(sController.ServiceName + " " + sController.Status);
 }

Console.ReadKey();

代码执行SC

public static string excuteCmd(string cmd)
        {
            Console.WriteLine("will be excute command {0}", cmd);
            Process proc = new Process();
            proc.StartInfo.FileName = "cmd.exe";
            proc.StartInfo.UseShellExecute = false;
            proc.StartInfo.RedirectStandardInput = false;
            proc.StartInfo.RedirectStandardOutput = true;
            proc.StartInfo.RedirectStandardError = true;
            proc.StartInfo.CreateNoWindow = true;
            proc.StartInfo.Arguments = "/c " + cmd;
            proc.Start();
            proc.WaitForExit();
            string ret = proc.StandardOutput.ReadToEnd() + proc.StandardError.ReadToEnd();
            Console.WriteLine(ret);
            return ret;
        }

程序启动时设置

其中的myServerName可查看服务得到。如果大家有什么好的方法,能够直接得到当前服务名,麻烦请告诉我一声。

protected override void OnStart(string[] args)
        {
            // TODO: Add code here to start your service.
            string serviceName = "myServerName";
            string cmd = String.Format("sc failure {0} reset=86400 actions=restart/60000/restart/120000/restart/120000", serviceName);
            excuteCmd(cmd);
            Start();
        }

最终启动程序时便设置了以下参数。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值