【问题标题】:How to start a windows service from other machines?如何从其他机器启动windows服务?
【发布时间】:2012-10-26 12:45:54
【问题描述】:

我的机器上运行了一些使用 C# 语言编写的 Windows 服务。我还为我的客户创建了一个 WPF 应用程序来启动和停止这些服务。当我在同一台机器上运行它时,它工作正常,但是当我尝试在其他机器上运行它时它不起作用,并且我收到一条异常消息:Cannot open Service Control Manager on compupter 'NAME-PC '。此操作可能需要其他权限。

我的 Windows 服务有一个项目安装程序,该安装程序有一个帐户属性设置为 LocalSystem 的 ProcessInstaller。我不确定是否有这种影响。

如何设置其他机器的权限才能在特定机器上启动该服务?

谢谢。

【问题讨论】:

  • 机器是否在同一个
  • 是的,实际上在同一个网络组。
  • 您能说明一下您的设置吗?是您的 WCF 服务接收命令并尝试在同一台机器上启动另一个服务吗?
  • 所涉及的技术几乎没有什么区别,与运行windows服务的帐户无关。这是一个权限问题 - 请参阅this guide 了解如何配置安全设置,以便允许远程用户启动和停止服务。 (在这种情况下,远程用户将是 WPF 应用程序在其下运行的帐户)

标签: c# .net security service windows-services


【解决方案1】:

我认为这是一个安全问题。
您需要授予启动该服务的权限

How to grant users rights to manage services in Windows Server 2003

【讨论】:

    【解决方案2】:

    为了帮助您进行一些故障排除,因为我认为我无法直接根据您当前的信息给出答案,首先,尝试将您的机器名称更改为 IP 地址。例如,如果您的 WCF 服务正在接收命令并尝试在该计算机上重新启动另一个服务,则尝试:

    string machine = "127.0.0.1";
    

    为什么这会起作用的答案是我不知道。这可能与以本地用户身份运行的服务有关,并且无法访问您的 DNS 来解析主机名。

    如果这不起作用(或者即使它起作用),我会尝试使用专门用于运行服务的 帐户设置您的服务,并且已被授予执行操作的权限你希望他们这样做。通常,这是创建可以执行任何操作的服务的最佳实践方式,因为我们并非都是安全专家,而且我们的服务可能会受到损害(当作为本地系统运行时,这可能会很糟糕)。

    此外,如果您的服务尝试在远程计算机(非本地)上启动服务,那么您将需要某种有权执行此操作的网络帐户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 2019-09-25
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-15
      相关资源
      最近更新 更多