【问题标题】:Building installation package with service credentials in it构建带有服务凭证的安装包
【发布时间】:2014-05-21 01:22:50
【问题描述】:

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

【问题讨论】:

    标签: wix credentials azure-devops dotnetinstaller


    【解决方案1】:

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

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

    然后,您在 MSI 文件中创建 ServiceInstallServiceControl 表,以使用属性 USERNAME 安装和配置服务PASSWORD 分别用于 StartName 和 Password 列。

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

    1. Simple "get going" sample from Code Project
    2. Full blown WIX tutorial

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

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

    【讨论】:

    • THX 快速回答,但我认为我的问题有点不精确。我的应用程序作为 Windows 服务(客户端 - 服务器)工作,每个用户都有自己的帐户。我希望能够为他准备安装包,其中包含他的凭据,而不是 Windows 用户凭据。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      相关资源
      最近更新 更多