我正在使用wix / dotnetinstaller来安装Windows服务。该服务需要在用户设置的非系统帐户下运行。是否可以构建包含凭证的安装包?整个想法是在用户(登录到他的网络面板后)点击下载按钮时准备包。生成的包应该包含凭证,安装后没有必要再次使用它。
答案 0 :(得分:0)
毫无疑问,出于安全原因和可维护性,不建议使用用户凭据运行服务。但是,如果您使用 Windows Installer ,则可以在安装期间输入服务凭据,或者在命令行上设置它们,如下所示:
msiexec.exe /I "C:\Test.msi" /QN /L* "C:\Tmp\msilog.log" USERNAME="Test" PASSWORD="Test"
然后,您在MSI文件中创建 ServiceInstall 和 ServiceControl 表,以使用 USERNAME 和属性安装和配置服务分别为StartName和Password列的PASSWORD 。
我建议使用WIX - 这是一个能够从XML源文件编译MSI二进制文件的免费工具。对于WIX的速成班,我推荐这两个来源:
如果你是“修补匠”,这两个来源 - 特别是第一个 - 将帮助你使用WIX快速前进。
您还可以使用更高级别的工具和更好的GUI以及一些“自动化”工具,例如Installshield和Advanced Installer。
答案 1 :(得分:0)
我非常确定您无法做到这一点,因为要使用用户的凭据启动服务,您需要用户的密码,而且您可以&#39抓住它。为什么您正在运行的这个过程需要成为一项服务?您可以将其创建为普通进程并将其放在用户的“启动”菜单中,然后在用户登录时启动。