2012-03-05 18 views
6

kullanmama izin verin yükleme sırasında kullanıcı tarafından belirtilen etki alanı hesabı altında çalışması gereken bir windows hizmetim var.Kullanıcı bir hizmetin hangi hesapta çalıştırılacağını

Bu, Wix yükleyiciyle nasıl mümkün olabilir (yani, kullanıcıdan hizmetin kullanması gereken bir hesap + şifre isteyin)?

Arkaplan

Benim hizmeti bir ağ paylaşımına erişimi gerekiyor ve ben varolan etki alanı kullanıcı hesabını kullanmak istiyorum böylece LocalSystem uygun haklara sahip değil.

cevap

7

ServiceInstall eleman arkadaşın burada. Hesap ve Parola özelliklerini içerir.

<Control Type="Edit" Property="ACCOUNT" ... /> 
<Control Type="Edit" Property="PASSWORD" Password="Yes" ... /> 

Ve ServiceInstall talimat için bu özellikleri kullanmak: Yani, iletişim kutusundaki kontrollerin birkaç yazar bu yardımcı olur

<ServiceInstall Id="..." Account="[ACCOUNT]" Password="[PASSWORD]" Type="ownProcess" ... /> 

Umut.

+0

ben ne demek istediğini görüyorum. Bir hesap oluşturmak için bu değerleri 'ServiceInstall' öğesinde kullanabilirim. Doğru? Kullanabileceğim standart, hazır bir iletişim yok mu? – nabulke

+0

Doğru. Hayır, bildiğim kadarıyla standart bir diyalog yok, ama bunu oluşturmak oldukça basit olmalı –

+0

Yardımlarınız için teşekkür ederiz. – nabulke

3

Hizmeti çalıştırmak istediğiniz kullanıcı için hem hesap adını hem de parolaya sahip olmanız gerekir. Bir kullanıcı adı ve parola sormak için yükleyicime özel bir UI ekleyerek ve ardından ServiceInsall öğesindeki Hesap ve Parola öznitelikleri için sağlanan değerleri kullanarak bunu başardım.

Hizmeti çalıştırmak için kullanılan hesapların her zaman Hizmet Olarak Oturum Açma ayrıcalığına sahip olması gerektiğini unutmayın. Bu, kullanıcılara varsayılan olarak verilmez. Bu öğeyi kullanıcıya eklemek için Kullanıcı ögesini UtilExtension şemasından kullanabildim. Kullanıcıya ayrıcalıklı olanı eklemek yalnızca yükleyiciyi çalıştıran kullanıcı bir yönetici ise başarılı olur.

Kullandığım kod. SERVICECREDENTIALS_USERLOGIN ve SERVICECREDENTIALS_PASSWORD, özel kullanıcı arayüzünden alınan özelliklerdir. Daha fazla bilgi için

<Component Id="ServiceEXE" Guid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"> 
    <File Id="ServiceEXE" Name="YourService.exe" DiskId="1" 
     Source="path\to\YourService.exe" KeyPath="yes" /> 
    <util:User Id="UpdateUserLogonAsService" UpdateIfExists="yes" CreateUser="no" Name="[SERVICECREDENTIALS_USERLOGIN]" 
      LogonAsService="yes" /> 
    <ServiceInstall Id="ServiceInstall" Type="ownProcess" Vital="yes" Name="YourService" 
        DisplayName="Your Service" Description="Your Service description" 
        Start="auto" Account=".\[SERVICECREDENTIALS_USERLOGIN]" Password="[SERVICECREDENTIALS_PASSWORD]" 
        ErrorControl="normal" Interactive="no" /> 

    <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="YourService" Wait="yes" /> 
</Component> 

: Bir hesabın + parola sorar yükleyici için kendi özel iletişim eklemek zorunda: http://skullpsgblog.blogspot.in/2015/11/in-wix-setting-services-user-account.html

İlgili konular