SC删除<service>不起作用</service>

时间:2014-08-14 12:00:53

标签: c# service windows-services command

我正在从C#代码运行sc delete命令。但它总会回来,

  

[SC] OpenService FAILED 1060:“指定的服务不作为已安装的服务存在”

我尝试多次执行代码,但仍然遇到同样的错误。但是如果我转到命令提示符并执行命令,该服务将被成功删除。

是的,如果我在命令提示符下再次执行该命令,则会给出上述相同的错误。所以我想知道,为什么它不会从C#代码中删除,我错过了什么?

var procStartInfo = new ProcessStartInfo("cmd.exe", "/c sc delete 'myService'")
{
  RedirectStandardOutput = true,
  UseShellExecute = false,
  CreateNoWindow = false
};

var proc = new Process { StartInfo = procStartInfo };
proc.Start();

// Get the output into a string
var result = proc.StandardOutput.ReadToEnd();

1 个答案:

答案 0 :(得分:4)

单引号。他们不工作。

var procStartInfo = new ProcessStartInfo("cmd.exe", "/c sc delete myService")

处理间隔服务名称的双引号,然后您需要转义它们。

var procStartInfo = new ProcessStartInfo("cmd.exe", "/c sc delete \"my Service\"")