我正在使用User
库中的WixUtilExtenion
授予用户登录服务权限:
...
<Property Id="SVCUSERNAME" Value="LocalSystem" />
...
<Component Id="MyApp">
<File Id="MyApp.exe" Name="MyApp.exe" />
<util:User Id="UpdateUserLogonAsService" UpdateIfExists="yes" CreateUser="no" Name="[SVCUSERNAME]" LogonAsService="yes" />
<ServiceInstall Id="MyApp" Type="ownProcess" Name="MyApp" DisplayName="MyApp"
Description="MyApp" Start="auto" Account="[SVCUSERNAME]" Password="[SVCPASSWORD]" ErrorControl="normal" Vital="yes">
</ServiceInstall>
<ServiceControl Id="MyApp" Start="install" Stop="both" Remove="both" Name="MyApp" Wait="no" />
</Component>
如果用户指定了其他用户,则更改属性SVCUSERNAME
,否则默认为本地系统帐户。权限分配不适用于本地系统(无论如何都有此权限),因此如果SVCUSERNAME
属性不是 LocalSystem,我只想尝试添加权限。
答案 0 :(得分:1)
您需要将User放入其自己的组件中,以便您可以在不调整服务安装和文件的情况下对其进行调整。在用户组件下添加
<Condition><![CDATA[SVCUSERNAME ~<> "LocalSystem" AND SVCUSERNAME ~<> "SYSTEM"]]</Condtion>
。我包括SYSTEM,因为它是用户可能为系统帐户指定的别名。