我已经使用Visual Studio 2010创建了一个Windows服务和一个关联的安装程序。所有这些工作正常,安装程序创建服务,并将其登录凭据设置为本地系统 - 如在ServiceInstaller代码中指定的那样该项目。
但是,本地系统不足以满足应用程序的需求。我需要允许用户在安装程序中指定用于服务的相应凭据。我不希望有一个自定义UI屏幕,它获取值并将它们存储在注册表中以供使用的安装后脚本,我也不想硬编码安装程序中的详细信息(因为这将用于许多具有用于服务的不同帐户和域的站点。)
任何人都可以提供有关如何执行此操作的建议吗?我猜它会涉及一个自定义动作DLL或类似的东西。
答案 0 :(得分:0)
首先,您需要添加一个自定义对话框,用于检索服务凭据。也许本教程可以提供帮助:http://www.codeproject.com/KB/install/vsSetupCustomDialogs.aspx
然后,可以将与服务编辑框关联的安装程序属性用于您的服务。安装程序类操作无法直接访问安装程序属性。因此,您需要使用其他自定义操作。例如,您可以使用设置服务凭据的自定义命令行启动sc.exe。
最后,您需要确保为指定的用户帐户设置了“作为服务登录”策略。也许这会有所帮助: WIX: Windows Service Repair failing on lack of permissions + how to detecting repair mode?
答案 1 :(得分:0)
只需将用户名和密码设置为null即可。 它将促进一个输入对话框。