可以提示输入windows服务的用户名/密码吗?

问题描述:

我正在使用Wix安装Windows服务。该服务需要在用户设置的非系统/服务帐户下运行。可以提示输入windows服务的用户名/密码吗?

是否可以让它提示输入服务登录的用户名/密码?

WiX没有(或者至少没有)开箱即可找到任何你想要的东西。我知道的最佳选择是自己推出。

http://www.geekproject.com/showtopic.aspx?ID=94

+0

这个其他的S/O答案为我工作。 http://*.com/a/9568555/424380 – egbutter 2014-08-05 08:33:11

+0

请注意,此解决方案不会检查错误... – 2016-06-27 08:44:46

是的,但它没有内置。您可以在WiX中设置GUI(这不太直观),您可以在后面的步骤中提示您进行任何设置。

首先,检查如何创建一个GUI,通过遵循these指导原则来设置自定义属性,确保您的GUI填充属性SERVICEACCOUNT和SERVICEPASSWORD。然后使用具有这些属性的ServiceInstall元素,如here所示。

GitHub上的Community MSI Extensions包含一个ServiceCredDlg对话框,用于提示用户名和密码。根据docs,它可以测试凭据是否有效,并且该用户具有“作为服务登录”权限。

您可以在命令行上使用凭据设置PUBLIC PROPERTIES(大写),并使用它们来安装该服务。

MSIEXEC.EXE/I “的setup.msi”/ QN USER = “用户名” PASS = “密码”

自定义动作也可用于检索来自用户的这些值期间交互式安装,但如果您这样做,请记住要使显示的消息服从设置UILevel值。在静默安装中显示来自自定义操作的消息框被认为是严重的安装错误:

  • INSTALLUILEVEL_NONE 2完全无提示安装。
  • INSTALLUILEVEL_BASIC 3简单的进度和错误处理。
  • INSTALLUILEVEL_REDUCED 4已编辑的用户界面,禁止向导对话框。
  • INSTALLUILEVEL_FULL 5使用向导,进度,错误编写的用户界面。

也许最好的选择是在交互式安装中显示对话框,如果这些属性没有在命令行上设置,拒绝安静地安装。这是一个简单的自定义操作,用于测试USER和PASS属性的值。

显然,不建议使用用户帐户来运行服务。