尽管以管理员身份运行命令提示符仍无法打开服务控制管理器

时间:2018-11-27 19:00:37

标签: c# windows service windows-services installutil

我用C#创建了一个服务,该服务生成了一个可执行文件“ GodzillaService.exe”。服务本身只是完全根据此链接生成的基本模板,除了名称:https://www.c-sharpcorner.com/article/create-windows-services-in-c-sharp/

当我尝试运行InstallUtil时出现问题。根据上面的文章,我执行

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 

在提升权限的命令提示符下,以管理员身份运行。然后输入

InstallUtil.exe C:\Path\To\My\EXE\Godzilla.exe

我被这个错误击中:

  

在安装阶段发生异常。   System.InvalidOperationException:无法打开服务控制管理器   在计算机“。”上。此操作可能需要其他特权。的   内部异常System.ComponentModel.Win32Exception与引发   以下错误消息:访问被拒绝。

看着错误消息,经验告诉我,我需要授予对某物或某人的访问权限,但是那又是什么呢?我已经以管理员身份运行该程序。到目前为止,我已经尝试过这些事情:

  • 以管理员身份运行命令提示符。
  • 以管理员身份运行VS 2017的Developer Command Prompt。
  • 注销我的用户帐户,登录到我的管理员帐户,然后尝试运行它。
  • 将GodzillaService.exe文件移动到Program Files目录中,以防applocker弄乱它。
  • 以管理员身份运行VS 2017,重建exe文件,然后尝试。
  • 尝试使用exe文件和InstallUtil的完整路径。
  • 确保我的管理员帐户位于本地管理员组中。
  • 试图查看事件查看器以获取更多信息(未找到与此问题相关的任何日志,也许我在错误的位置查找了该信息?)
  • 尝试将服务程序中的帐户从LocalSystem更改为User,LocalService和NetworkService

我是个新主意...对于我可以做些什么来进一步解决此问题,有任何建议吗?我感谢您提出的任何建议!

1 个答案:

答案 0 :(得分:1)

花了我一段时间,但我终于能够弄清楚!问题是,即使我说我是以管理员身份运行它,还是以具有管理员特权的用户身份运行它。完全不同。

在我的环境(这是一个域环境)中,由于某种原因,我们阻止了“以管理员身份运行”选项来运行程序。因此,要以管理员身份运行东西,我们实际上必须以其他用户身份运行它,然后选择我们的管理员帐户。这适用于99%的情况,但不适用于这种情况。

解决方案是我必须完全注销常规用户帐户并使用管理帐户登录。然后,我必须右键单击命令提示符和“以管理员身份运行”。完成此操作后,我不再收到错误!