首页 > 解决方案 > Wix ServiceInstall 指定帐户

问题描述

我用 WiX 创建了一个服务安装程序。安装程序使用InstallPrivileges="elevated". 我的服务必须访问一个远程文件夹,因此我想指定用户属性以确保该服务将具有足够的权限。

我检查了 WiX 文档,但我只找到了如何将本地系统定义为帐户。

如何为服务定义用户(可能是当前用户)?

<ServiceInstall Id="ServiceInstaller"
                Type="ownProcess"
                Vital="yes"
                Name="$(var.service)"
                DisplayName="$(var.product)"
                Start="auto"
                Account="LocalSystem"
                ErrorControl="normal" />

标签: c#wixwindows-installeraccount

解决方案


凭据:您需要指定帐户和密码,可能如下所示(现在没有时间测试)。msiexec.exe请注意,使用或通过MSI 对话框从命令行安装时可以设置公共属性:

<..>

<Property Id="SERVICEACCOUNT" Hidden="yes" Value="MyUser"/>
<Property Id="SERVICEPASSWORD" Hidden="yes" Value="MyPass"/>

<..>

<Component>

   <ServiceInstall Name="MyService" Start="auto" ErrorControl="normal" Type="ownProcess"
                   Account="[SERVICEACCOUNT]" Password="[SERVICEPASSWORD]" >
   </ServiceInstall>

   <ServiceControl Name="MyService" Start="install" Stop="both" Wait="yes" Remove="uninstall" />

</Component>

创建本地用户:如果您需要在您安装的机器上创建本地用户,您可以使用 WiX Util 功能。也许在 github 上看到这个示例。搜索"util:User"


强制宣讲 :-):我个人不喜欢使用用户凭据运行的服务 - forsecurity reasons和 forpractical reasons(管理密码更改过程而不导致重大服务中断)。

更多内容Section 12如何避免 WiX / MSI 部署解决方案中的常见设计缺陷?请同时检查链接 - 尤其是“托管服务帐户”?(一步一步)。


一些链接


推荐阅读