我使用WiX创建了服务安装程序。设置使用InstallPrivileges="elevated"
运行。我的服务必须访问一个远程文件夹,因此我想指定用户属性,以确保该服务将具有足够的特权。
我查看了WiX文档,但只发现了如何将本地系统定义为帐户。
如何为该服务定义一个用户(也许是当前用户)?
<ServiceInstall Id="ServiceInstaller"
Type="ownProcess"
Vital="yes"
Name="$(var.service)"
DisplayName="$(var.product)"
Start="auto"
Account="LocalSystem"
ErrorControl="normal" />
答案 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)。
某些链接 :