Wix ServiceInstall 指定账号

Wix ServiceInstall specify account

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

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

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

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

Credentials: 您需要指定一个帐户和密码,可能如下所示(现在没时间测试) .请注意,使用 msiexec.exe 或通过 MSI 对话框 :[= 从命令行安装时,可以设置 public 属性20=]

<..>

<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>

Create Local Users: 如果您需要在您安装的机器上创建本地用户,您可以使用 WiX Util 功能. Perhaps see this sample on github。搜索 "util:User".


强制说教:-): 个人不喜欢服务运行用户凭证-都为security reasonspractical reasons(在不造成重大服务中断的情况下管理密码更改过程)。

更多内容在 Section 12 此处: Please check the links as well - maybe particularly on "managed service accounts"? (step-by-step).


一些链接: