0

我正在使用 wix/dotnetinstaller 安装 Windows 服务。该服务需要在用户设置的非系统帐户下运行。是否可以构建包含凭据的安装包?整个想法是在用户(登录到他的网络面板后)单击下载按钮时准备包。生成的包应该包含凭据,安装后无需再次放置。

4

2 回答 2

0

我很确定您不能这样做,因为要使用用户的凭据启动服务,您需要用户的密码,而您无法掌握它。为什么你正在运行的这个进程需要成为一个服务?您可以将其创建为普通进程并将其放在用户的“启动”菜单中,然后在用户登录时启动。

于 2014-05-20T17:22:50.843 回答
0

正如您无疑知道的那样,出于安全原因和可维护性等原因,不建议使用用户凭据运行服务。但是,如果您使用Windows 安装程序,您可以在安装过程中输入服务凭据或在命令行中设置它们,如下所示:

msiexec.exe /I "C:\Test.msi" /QN /L* "C:\Tmp\msilog.log" USERNAME="Test" PASSWORD="Test"

然后,您在 MSI 文件中编写ServiceInstallServiceControl表,以分别使用 StartName 和 Password 列的属性USERNAMEPASSWORD来安装和配置服务。

我建议为此使用 WIX - 这是一个能够从 XML 源文件编译 MSI 二进制文件的免费工具。对于 WIX 速成课程,我推荐以下两个来源:

  1. 来自 Code Project 的简单“开始”示例
  2. 完整的 WIX 教程

如果您是“修补匠”,那么这两个来源(尤其是第一个来源)将帮助您快速使用 WIX。

您还可以使用具有更好 GUI 和一些“自动”功能的更高级别的工具,例如InstallshieldAdvanced Installer

于 2014-05-20T10:14:02.183 回答