无法在NetworkService帐户中启动Windows服务

时间:2012-08-15 22:09:12

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

我有一个Windows服务项目实现,我尝试安装为网络服务。

process = new ServiceProcessInstaller();
process.Account = ServiceAccount.NetworkService;

但是每当我尝试启动服务时,我都会得到:

System error 5 has occurred.

Access is denied.

这是在Visual Studio命令提示符中运行net start MyService命令之后发生的,该命令提示符正在以管理员身份运行。

有关如何使其工作的任何帮助?感谢。

3 个答案:

答案 0 :(得分:26)

我会检查网络服务帐户是否有权执行。检查步骤:

  1. 在Windows资源管理器中,转到包含服务二进制文件的文件夹
  2. 右键单击文件夹>属性>安全选项卡>编辑按钮
  3. 添加> “网络服务”>行
  4. 给它完全控制(只是测试然后减少权限,直到它工作)
  5. screenshot

答案 1 :(得分:0)

您的Net Start MyService可能无法使用升级权限运行。您的命令需要(我相信)管理权限。

<强>更新

不确定原因,但您对服务的特权很奇怪。默认情况下,服务的权限应如下所示:

D:(A;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)

ACE Type: ACCESS_ALLOWED_ACE_TYPE
Trustee: NT AUTHORITY\SYSTEM
AccessMask:
  ADS_RIGHT_DELETE
  ADS_RIGHT_READ_CONTROL
  ADS_RIGHT_WRITE_DAC
  ADS_RIGHT_WRITE_OWNER
  ADS_RIGHT_DS_CREATE_CHILD
  ADS_RIGHT_DS_DELETE_CHILD
  ADS_RIGHT_ACTRL_DS_LIST
  ADS_RIGHT_DS_SELF
  ADS_RIGHT_DS_READ_PROP
  ADS_RIGHT_DS_WRITE_PROP
  ADS_RIGHT_DS_DELETE_TREE
  ADS_RIGHT_DS_LIST_OBJECT
  ADS_RIGHT_DS_CONTROL_ACCESS

然而你的看起来像是:

D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)

ACE Type: ACCESS_ALLOWED_ACE_TYPE
Trustee: NT AUTHORITY\SYSTEM
AccessMask:
  ADS_RIGHT_READ_CONTROL
  ADS_RIGHT_DS_CREATE_CHILD
  ADS_RIGHT_ACTRL_DS_LIST
  ADS_RIGHT_DS_SELF
  ADS_RIGHT_DS_READ_PROP
  ADS_RIGHT_DS_WRITE_PROP
  ADS_RIGHT_DS_DELETE_TREE
  ADS_RIGHT_DS_LIST_OBJECT
  ADS_RIGHT_DS_CONTROL_ACCESS

我不确定究竟是怎么回事。尝试卸载并重新安装?

您可以下载SddlParse(google it :)来解析Security Descriptor Definition Language

答案 2 :(得分:0)

“拒绝访问”消息适用于尝试启动服务的用户,而不适用于运行服务的帐户。

您可以从以下地址开始服务:

  1. 服务控制面板小程序?
  2. 你自己开始提升的命令提示符(不是来自Visual Studio)?