2010-01-05 3 views
7

J'essaye de créer un installateur de wix pour installer et démarrer un service de Windows sous le compte de NetworkService, mais échoué, ce que j'ai obtenu est "Service"() n'a pas pu être installé. . Vérifiez que vous disposez des privilèges suffisants pour installer des services système »Comment installer et démarrer un service Windows sous le compte NetworkService en utilisant WiX?

conseils S'il vous plaît, mon code est comme ci-dessous:

<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> 

Merci

Répondre

3

D'abord, le message que vous obtenez peut être dû Un programme d'installation doit être exécuté par un administrateur, car la création de services requiert des privilèges d'administrateur.Vous pouvez vérifier cela dans un élément Condition

Deuxièmement, en utilisant comme ca Le nom de comptage échouera sur les systèmes non anglais, car les noms de compte intégrés sont localisés. Au lieu de cela, utilisez NetworkService vieux plaine que Wix reconnaît spécialement et résout dans le nom localisé correct.

+1

Merci d'avoir répondu, auriez-vous s'il vous plaît laissez-moi savoir comment vérifier la question de la sécurité dans l'élément État? Je suis assez nouveau pour wix. Je viens de changer le nom du compte en NetworkService, mais le résultat est toujours le même. Je vous remercie. – Ray

17

La réponse de Paul est incorrecte. Selon la documentation MSDN, pour spécifier le compte de service réseau, utilisez "NT AUTHORITY \ NETWORK SERVICE":

... le nom du compte doit être

NT AUTHORITY\NETWORKSERVICE

lorsque vous appelez CreateService ou ChangeServiceConfig, quelle que soit la locale ...

Définissez la propriété "ALLUSERS" t o forcer une installation de l'administrateur.

voir this lien pour plus d'informations

1

J'ai eu celui-ci sur Windows 7 et il a été me casser les pieds pendant des siècles. Je l'ai fixé en ajoutant

InstallScope="perMachine" 

Pour mon élément d'emballage:

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