我正在开发一个Windows应用程序,它将作为Windows服务安装。
此安装需要管理员用户及其密码。
有没有办法以C#以编程方式恢复用户和用于启动此服务的密码?
答案 0 :(得分:1)
最简单的支持解决方案是在某处存储密码的另一个副本,可能使用CryptProtectData和CryptUnprotectData。
您可以使用LsaRetrievePrivateData检索服务管理器使用的密码。显然,秘密的名称是服务名称(注意:CreateService中lpServiceName指定的内部服务名称,而不是服务显示名称)。目前还不清楚您需要执行哪些安全上下文。即使它有效,这也不是一种支持的技术。
或者您可以安装credential manager以在服务启动时捕获密码。 IIRC,此安装需要重新启动。