找出启动服务c#的用户的用户名和密码

时间:2012-02-21 09:24:42

标签: c# windows service credentials

我正在开发一个Windows应用程序,它将作为Windows服务安装。

此安装需要管理员用户及其密码。

有没有办法以C#以编程方式恢复用户和用于启动此服务的密码

1 个答案:

答案 0 :(得分:1)

最简单的支持解决方案是在某处存储密码的另一个副本,可能使用CryptProtectDataCryptUnprotectData

您可以使用LsaRetrievePrivateData检索服务管理器使用的密码。显然,秘密的名称是服务名称(注意:CreateService中lpServiceName指定的内部服务名称,而不是服务显示名称)。目前还不清楚您需要执行哪些安全上下文。即使它有效,这也不是一种支持的技术。

或者您可以安装credential manager以在服务启动时捕获密码。 IIRC,此安装需要重新启动。