【问题标题】:Remove Window Service Programmatically c#以编程方式删除窗口服务 c#
【发布时间】:2018-07-13 06:19:55
【问题描述】:

我需要编写一个程序来删除一个窗口服务。但是,我只有服务器名称。我应该如何删除它?

【问题讨论】:

  • 好吧,您应该学习一些编程语言(例如 C#),然后尝试自己解决您的问题,如果您对此有任何实际问题 - 欢迎您使用 SO。 StackOverflow 不是代码编写服务。
  • 我在谷歌上搜索了你的标题并找到了 2 个主要匹配项,因为你一定已经找到它们了,它们是如何不起作用的? stackoverflow.com/questions/358700/…

标签: c#


【解决方案1】:

您可以使用 System.ServiceProcess.ServiceController 类来查找要删除的服务。 下面的代码将为您提供安装在机器上的服务数组(ServiceName 属性是您将用来识别服务的):

ServiceController.GetServices(string machineName);

要删除服务,您可以像这样调用 sc 命令:

ProcessStartInfo psi = new ProcessStartInfo("sc");
        psi.Arguments = string.Format("{0} delete \"{1}\"", machineName, serviceName).Trim();
        psi.RedirectStandardOutput = true;
        psi.UseShellExecute = false;
        var process = Process.Start(psi);
        process.WaitForExit(timeoutMilliseconds);
        var output = process.StandardOutput.ReadToEnd();
        if (process.ExitCode != 0)
        {
            throw new Exception(string.Format("Service delete for Windows Service {0} failed.", serviceName));
        }

上面的代码会尝试删除服务,如果在 timeoutMilliseconds 后做不到,会抛出异常。

【讨论】:

    猜你喜欢
    • 2012-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多