WIX ServiceInstall - 将服务设置为在NetworkService帐户下运行

时间:2009-10-22 10:37:44

标签: windows-services wix wix3 serviceinstall

我正在尝试创建一个WIX安装程序来安装我的Windows服务以在NetworkService帐户下运行并在安装过程中获得Insufficient Priviledges错误。

我发现这篇文章有人似乎遇到了同样的问题,但没有提供真正的解决方案:

http://n2.nabble.com/Re-WiX-users-Digest-Vol-40-Issue-129-td3782055.html

我敢肯定以前有人必须实现这一点,并想知道他们是否愿意分享代码片段?

4 个答案:

答案 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),否则我将显示另一个对话框,指示该用户未找到该帐户。