【问题标题】:sc.exe config changing credentials inside OnStart of Windows Servicesc.exe 配置在 Windows 服务的 OnStart 中更改凭据
【发布时间】:2013-01-10 18:05:45
【问题描述】:
我想从数据库中提取服务的凭据(更加动态)
在对服务调用 .Start() 之前,我正在使用 sc.exe 更改 OnStart 中的凭据。
sc.exe 更改有效,但我注意到它直到我再次重新启动后才生效。
即我注意到它是 SYSTEM 作为它运行的用户。一旦我再次重新启动,它就会显示我的域帐户。
是否有任何其他方法可以更改凭据以允许我在 OnStart 实际运行之前执行它?
谢谢,
大卫
【问题讨论】:
标签:
c#
windows-services
servicecontroller
【解决方案1】:
是否有任何其他方法可以更改凭据以允许我在 OnStart 实际运行之前执行它?
没有。当OnStart 执行时,服务确实 实际运行,所以无论你做什么,都为时已晚。
设置凭据以及启动类型、命令行、依赖项等其他内容应视为设置/安装/注册任务。
您可能会想到一些(相当复杂的)引导机制,例如一个服务在更新其凭据之前启动另一个服务。不过,我真的会问自己这是否值得。
从系统操作/管理的角度来看,“动态”改变其用户的服务似乎也很难预测。