Wix ServiceInstall指定帐户

时间:2018-08-10 13:47:44

标签: c# wix windows-installer account

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

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

如何为该服务定义一个用户(也许是当前用户)?

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

1 个答案:

答案 0 :(得分:1)

凭据 :您需要指定一个帐户和一个密码,可能类似于下面的显示(现在没有时间进行测试)。请注意,使用 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功能。 Perhaps see this sample on github。搜索"util:User"


必不可少的讲道:-) :我个人不喜欢使用用户凭据运行的服务- security reasons 和( practical reasons )(管理密码更改过程而不会引起主要服务中断)。

此处 Section 12 中的更多内容:How do I avoid common design flaws in my WiX / MSI deployment solution?请同时检查链接-尤其是“ managed service accounts ”上的链接”? (step-by-step)。


某些链接