2010-01-05 37 views
7

我想創建一個wix安裝程序來安裝和啓動一個Windows服務下的NetworkService帳戶,但失敗了,我得到的是「服務」()無法安裝。 。請確認您有足夠的權限來安裝系統服務」如何使用WiX在NetworkService帳戶下安裝和啓動Windows服務?

請指點,我的代碼如下:

<Component Id="service" Guid='myguid'> 
      <File Id='JobServiceEXE' Name='JobService.exe' DiskId='1' Source='mypath\JobService.exe' KeyPath='yes' /> 
      <ServiceControl Id="JobService" Name="[SERVICEID]" Stop="uninstall" Remove="uninstall" Wait="yes" /> 
      <ServiceInstall 
      Id="JobService" Name="[SERVICEID]" DisplayName="[SERVICENAME]" Type="ownProcess" Start="auto" ErrorControl="normal" Vital ='yes' 
      Account="NT Authority\NetworkService" 
      Description="Job Service" /> 
     </Component> 

謝謝

回答

3

首先,你得到的消息,可能是由於到一個安全問題。您的安裝程序必須由管理員,因爲創建服務,需要管理員權限運行。你可能會在Condition元素檢查這一點。

其次,使用NT Authority\NetworkService作爲交流計數名稱將在非英語系統上失敗,因爲內置帳戶名稱已本地化。相反,請使用Wix專門識別的普通舊NetworkService並解析爲正確的本地化名稱。

+1

感謝您的回覆,請你讓我知道如何來檢查條件元素的安全性問題:我加入

InstallScope="perMachine" 

要我的包件固定呢?我對wix很新。我只是將帳戶名稱更改爲NetworkService,但結果仍然相同。謝謝。 – Ray 2010-01-05 01:33:44

17

保羅的回答不正確。按照MSDN文檔,以指定網絡服務帳戶,使用 「NT AUTHORITY \ NETWORK SERVICE」:

...帳戶的名稱必須是

NT AUTHORITY\NETWORKSERVICE

當你調用的CreateServiceChangeServiceConfig,無論現場的...

設置屬性 「ALLUSERS」 T強制安裝管理員。

看到this鏈接

1

我一直在這一項上的Windows 7,它是竊聽我的年齡進一步的信息。

<Package Description="..." 
     Manufacturer="Microsoft Corporation" 
     InstallerVersion="200" 
     Languages="1033" 
     Compressed="yes" 
     InstallScope="perMachine"/> 
相關問題