我用WiX创建了一个服务安装程序。安装程序与InstallPrivileges="elevated"一起运行。我的服务必须访问一个远程文件夹,因此我希望指定user属性,以确保该服务具有足够的权限。
我检查了WiX文档,但我只找到了如何将本地系统定义为帐户。
如何定义服务的用户(可能是当前用户)?
<ServiceInstall Id="ServiceInstaller"
Type="ownProcess"
Vital="yes"
Name="$(var.service)"
DisplayName="$(var.product)"
Start="auto"
Account="LocalSystem"
ErrorControl="normal" />发布于 2018-08-10 16:01:09
凭据:您需要指定一个帐户和一个密码,可能如下所示(现在没有时间进行测试)。请注意,在使用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>Create :如果需要在安装的机器上创建本地用户,可以使用WiX Util特性。也许可以在github上看到这个示例。搜索"util:User"。
security reasons强制布道:-):就我个人而言,我不喜欢使用用户凭据运行的服务--无论是针对还是为practical reasons (管理密码更改过程而不造成重大服务中断)。
更多在Section 12这里:如何避免WiX / MSI部署解决方案中常见的设计缺陷?也请检查链接-也许特别是在"https://learn.microsoft.com/en-us/windows/security/identity-protection/access-control/service-accounts"?(分步。
一些链接
https://stackoverflow.com/questions/51787967
复制相似问题