【发布时间】:2014-05-21 01:22:50
【问题描述】:
我正在使用 wix/dotnetinstaller 安装 Windows 服务。该服务需要在用户设置的非系统帐户下运行。是否可以构建包含凭据的安装包?整个想法是在用户(登录到他的网络面板后)单击下载按钮时准备包。生成的包应该包含凭据,安装后无需再次放置。
【问题讨论】:
标签: wix credentials azure-devops dotnetinstaller
我正在使用 wix/dotnetinstaller 安装 Windows 服务。该服务需要在用户设置的非系统帐户下运行。是否可以构建包含凭据的安装包?整个想法是在用户(登录到他的网络面板后)单击下载按钮时准备包。生成的包应该包含凭据,安装后无需再次放置。
【问题讨论】:
标签: wix credentials azure-devops dotnetinstaller
您无疑知道,出于安全原因和可维护性等原因,不建议使用用户凭据运行服务。但是,如果您使用 Windows Installer,您可以在安装过程中输入服务凭据或在命令行中设置它们,如下所示:
msiexec.exe /I "C:\Test.msi" /QN /L* "C:\Tmp\msilog.log" USERNAME="Test" PASSWORD="Test"
然后,您在 MSI 文件中创建 ServiceInstall 和 ServiceControl 表,以使用属性 USERNAME 和 安装和配置服务PASSWORD 分别用于 StartName 和 Password 列。
我建议为此使用 WIX - 这是一个免费工具,能够从 XML 源文件编译 MSI 二进制文件。对于 WIX 速成课程,我推荐以下两个来源:
如果您是“修补匠”,这两个来源(尤其是第一个)将帮助您快速使用 WIX。
您还可以使用具有更好 GUI 和一些“自动”功能的更高级工具,例如 Installshield 和 Advanced Installer。
【讨论】:
我很确定您不能这样做,因为要使用用户的凭据启动服务,您需要用户的密码,而您无法获得它。为什么你正在运行的这个进程需要成为一个服务?您可以将其创建为普通进程并将其放在用户的“启动”菜单中,然后在用户登录时启动。
【讨论】: