我正在尝试创建一个WIX安装程序来安装我的Windows服务以在NetworkService帐户下运行并在安装过程中获得Insufficient Priviledges错误。
我发现这篇文章有人似乎遇到了同样的问题,但没有提供真正的解决方案:
http://n2.nabble.com/Re-WiX-users-Digest-Vol-40-Issue-129-td3782055.html
我敢肯定以前有人必须实现这一点,并想知道他们是否愿意分享代码片段?
答案 0 :(得分:5)
注意:下面的答案仅与提出问题时WIX和Windows的旧版本相关。如果您设置本机,则当前版本的WIX服务凭据将起作用“ NT AUTHORITY“域名和”NetworkService“帐户(现在不需要空间)。
原始答案:
正确的身份名称是“NT Authority \ Network Service”而不是“NT Authority \ NetworkService”。需要一个空间然后才能工作。
有趣的是,默认的“LocalSystem”直接与WIX 3.5一起使用,但是对于其他众所周知的帐户,你必须以“NT Authority ...”作为前缀,例如“LocalService”在直接使用时不起作用。
即。解决这个问题:
帐户='NT Authority \ Network Service'
答案 1 :(得分:1)
以前安装失败的一些遗留物似乎阻止我使用Account =“NT Authority \ NetworkService”删除并重新安装。一切都在宇宙中很好。
答案 2 :(得分:1)
我在Windows 8.1 FR和Windows 2012R2 ENU下运行了以下代码段。但是使用NT AUTHORITY\NETWORK SERVICE
失败并出现不足的权限错误。
因此,至少在最近的系统中,您必须使用MSDN中记录的NT AUTHORITY\NETWORKSERVICE
。
<ServiceInstall Id="xserviceInstall" Name="$(var.xServiceid)"
DisplayName="$(var.xServiceid)"
Description="x service" Start="auto" Type="ownProcess"
ErrorControl="ignore"
Account="NT AUTHORITY\NETWORKSERVICE"
Arguments="-w -N" Vital="yes" />
答案 3 :(得分:0)
我使用 customAction 查找用户凭据是否正确。
如果用户凭据与他们想要安装的计算机中的帐户匹配,我将允许他们继续进行下一个对话框(UI),否则我将显示另一个对话框,指示该用户未找到该帐户。