2012-04-27 4 views
1

Windowsサービスをインストール/再インストールするたびに、設定したユーザーをサービスに割り当てたいとします。サービスがパスワード付きのユーザーtest123で実行されている場合は、インストーラが実行されたときにサービスが同じユーザーに関連付けられていることを確認する必要があります(ローカルシステム(System.ServiceProcess.ServiceAccount.LocalSystem)ではありません)。作成したユーザーに割り当てているWindowsサービスのインストール


//Check whether my service exists- MyWinService is my service name. 

    System.Management.SelectQuery sQuery = new System.Management.SelectQuery(string.Format("select Name,startname from Win32_Service where name ='MyWinService' ")); 
using (System.Management.ManagementObjectSearcher mgmtSearcher = new System.Management.ManagementObjectSearcher(sQuery)) 
{ 
         foreach (System.Management.ManagementObject service1 in mgmtSearcher.Get()) 
      { 
string servicelogondetails = 
string.Format("Name: {0} , Logon : {1} ", service1["Name"].ToString(), service1["startname"]).ToString(); 
MessageBox.Show(servicelogondetails).ToString(); 
       } 
} 

私は(私はビュー/読み、ちょうど戻って割り当てたくない)、それを割り当てることがpassswordプロパティを見つけることができないのです。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa394418(v=vs.85).aspx

System.ServiceProcess.ServiceProcessInstaller installer=new 
System.ServiceProcess.ServiceProcessInstaller(); 

installer.Account = System.ServiceProcess.ServiceAccount.User; 

私はServiceAccount.Userに割り当てた場合私の質問は、私は、ユーザー名を再度&パスワードを設定するか、またはそのServiceAccount.Userは、ユーザー名とパスワードの世話をする場合する必要がありますか? パスワードをインストーラに割り当てる必要がある場合は、どうすればできますか?前もって感謝します。

installer.Password = <<something>>; 
installer.Username = <<something>>; 

PS:System.Management.dllはSystem.Management.SelectQueryはworkするために順番にnamespaceに追加beingされSystem.Managementをusing project &を基準とします。

答えて

0

UserName、PasswordをInstallerに割り当てることはオプションです。合格しなかった場合は、サービスのインストール時にプロンプ​​トが表示されます。

userName &のパスワードを割り当てる場合は、外部の設定ファイルを読み込んで割り当てます。

既存のサービスからユーザーの資格情報を取得して割り当てる方法があることに気づいていません。

+0

上記のコードからToString()を使用してユーザー名を取得することができます。パスワードを取得して割り当てようとするので、インストール中にそのポップアップを避けることができます。 – Sharpeye500

+0

申し訳ございませんが、サービス1 ["startname"]。ToString(); //ユーザー名の場合 – Sharpeye500

関連する問題