我正在使用 Wix 安装 Windows 服务。该服务需要在用户设置的非系统/服务帐户下运行。
是否可以提示输入服务登录的用户名/密码?
GitHub 上的社区 MSI 扩展包含一个 ServiceCredDlg 对话框,用于提示用户名和密码。根据文档,它可以测试凭据是否有效并且该用户具有“作为服务登录”权限。
是的,但它不是内置的。您可以在 WiX 中设置一个 GUI(这不太直观),您可以在其中提示您在以后的步骤中需要的任何设置。
首先,查看如何按照这些指南创建一个设置自定义属性的 GUI,确保您的 GUI 填充属性 SERVICEACCOUNT 和 SERVICEPASSWORD。然后使用具有这些属性的 ServiceInstall 元素,如此处所示。
WiX 没有(或至少没有)为您正在寻找的东西提供开箱即用的好东西。我知道的最佳选择是自己动手。
https://www.geekproject.com/post/wix-service-account-dialog/
您可以使用命令行上的凭据设置 PUBLIC PROPERTIES(大写)并使用这些凭据来安装服务。
msiexec.exe /I "setup.msi" /QN USER="username" PASS="password"
自定义操作也可用于在交互式安装期间从用户那里检索这些值,但如果您这样做,请记住使消息的显示遵循设置UILevel 值。在静默安装中显示来自自定义操作的消息框被认为是严重的设置错误:
也许最好的选择是在交互式安装中显示对话框,如果这些属性未在命令行上设置,则拒绝静默安装。这是一个简单的自定义操作,用于测试 USER 和 PASS 属性的值。
显然不建议使用用户帐户来运行服务。