C# 无法在NetworkService帐户中启动Windows服务
我有一个windows服务项目实现,我正在尝试将其作为网络服务安装C# 无法在NetworkService帐户中启动Windows服务,c#,.net,windows-services,network-service,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命令之后出现的,顺便说一下
process = new ServiceProcessInstaller();
process.Account = ServiceAccount.NetworkService;
但是,每当我尝试启动服务时,我会得到:
System error 5 has occurred.
Access is denied.
这是在visual studio命令提示符中运行net start MyService
命令之后出现的,顺便说一下,该命令以管理员身份运行
关于如何让它工作有什么帮助吗?谢谢。您的
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:)来解析出。拒绝访问”消息适用于试图启动服务的用户,而不是运行服务的帐户
您可以从以下位置启动服务:
我将检查网络服务帐户是否具有执行权限。检查步骤:
但是我提到visual studio cmd正在管理模式下运行您已将快捷方式更改为
以管理员身份运行
?同样,在VS命令提示符中键入sc sdshow MyService
,并用它的响应更新您的问题。运行此sc命令时,我得到以下信息:D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;ccdclcswrpdtlocrsdrcwdwo;;;BA)(A;;CCLCSWLOCR RC;;;IU)(A;;CCLCSWLOCRRC;;;SU)s:(AU;cwd;ccdclcswwrpwpdtwdrocdrdwo;;;cwd)
我从管理模式下运行的常规cmd提示符中获得此信息:D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCR RC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
检查安装路径,确保具有服务所需的所有权限,并且文件夹具有NS用户执行的权限。尝试在Windows服务OnStart
方法的第一行上放置一个Debug.Break
。它被点击了吗?不,主方法甚至没有被点击。您是否为该文件夹中的NS用户添加了权限?它有允许执行的“滴答声”吗?@oleksii:我刚刚接触这个windows服务的东西,所以我不确定我是否理解你在说什么about@oleksii:是否要添加答案?那么如何在LocalSystem模式下正常运行服务?我还从由Me启动的cmd提示符中获得拒绝访问权限如何从服务小程序中获得?不确定“LocalSystem模式”是什么意思。您可以通过选择顶部单选按钮:谢谢,在LocalSystem帐户中运行该服务。这就是我一直在寻找的。在我的情况下,上述步骤不起作用。我已授予网络服务帐户的全部权限,启动服务时收到错误消息“如果其他服务或程序未使用某些服务,它们将自动停止。”@user2323308这是您的内部异常。不是没有网络服务的权利。有没有办法从CLI做到这一点?@kkirsche我相信有办法。请参阅本文:。如果你明白了,你能用命令和参数的细节更新我的答案吗?谢谢