sc.exe配置在Windows服务的OnStart中更改凭据

时间:2013-01-10 18:05:45

标签: c# windows-services servicecontroller

我想从数据库中提取服务的凭据(更具动态性)

我在服务上调用.Start()之前使用sc.exe来更改OnStart中的凭据 sc.exe更改有效,但我注意到它重新启动后才会生效。

即。我注意到它是作为运行用户的SYSTEM。一旦我再次重新启动它显示我的域帐户。

有没有其他方法可以更改凭据,允许我在实际运行之前在OnStart中执行此操作?

谢谢, 大卫

1 个答案:

答案 0 :(得分:0)

  

有没有其他方法可以更改凭据,允许我在实际运行之前在OnStart中执行此操作?

没有。当OnStart被执行时,服务确实实际运行,所以无论你做什么,都为时已晚。

设置凭据以及启动类型,命令行,依赖关系等其他内容应被视为设置/安装/注册任务。

您可能会想到一些(相当复杂的)自举机制,就像一个服务在更新其凭据之前启动另一个服务。我真的会问自己这是否值得。

从系统运营/管理层的角度来看,“动态”更改其用户的服务似乎也是不可预测的。