我正在尝试创建一个 WIX 安装程序来安装我的 Windows 服务以在 NetworkService 帐户下运行,并在安装过程中收到 Insufficient Priviledges 错误。
我发现这篇文章似乎有人遇到了同样的问题,但没有提供真正的解决方案:
http://n2.nabble.com/Re-WiX-users-Digest-Vol-40-Issue-129-td3782055.html
我敢肯定有人以前一定已经实现了这一点,并想知道他们是否愿意分享代码片段?
我正在尝试创建一个 WIX 安装程序来安装我的 Windows 服务以在 NetworkService 帐户下运行,并在安装过程中收到 Insufficient Priviledges 错误。
我发现这篇文章似乎有人遇到了同样的问题,但没有提供真正的解决方案:
http://n2.nabble.com/Re-WiX-users-Digest-Vol-40-Issue-129-td3782055.html
我敢肯定有人以前一定已经实现了这一点,并想知道他们是否愿意分享代码片段?
NOTE: The answer below is only relevant on the older builds of WIX and Windows at the time the question was raised. The current version of the WIX service credentials will work if you set the native "NT AUTHORITY" domain and "NetworkService" account (no space necessary now).
Original Answer:
The correct identity name is "NT Authority\Network Service" not "NT Authority\NetworkService". A space is required then it works.
Funny that the default "LocalSystem" works directly with WIX 3.5, but for other well known accounts you have to prefix with "NT Authority...", for example "LocalService" does not work either when used directly.
i.e. fix this with:
Account='NT Authority\Network Service'
似乎以前安装失败的一些残余物阻止了我使用 Account="NT Authority\NetworkService" 删除和重新安装。宇宙再次一切安好。
我有以下代码片段在 Windows 8.1 FR 和 Windows 2012R2 ENU 下工作。但是使用NT AUTHORITY\NETWORK SERVICE
失败并出现 权限不足错误。
因此,至少在最近的系统下,您必须NT AUTHORITY\NETWORKSERVICE
按照MSDN中的说明使用。
<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" />
我使用customAction来查找用户凭据是否正确。
如果用户凭据与他们要安装的计算机中的帐户匹配,我将允许他们继续进行下一个对话框(UI),否则我将显示另一个对话框,指示未找到该帐户的用户。