2012-04-27 50 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(); 
       } 
} 

我無法找到密碼時應財產分配它(我不想要查看/讀,只是分配回)。

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被添加到該命名空間,以便System.Management.SelectQuery工作項目&。

回答

0

分配用戶名,密碼到安裝程序是可選的。如果不通過,安裝服務時會提示。

如果要分配用戶名&密碼,可以通過從某個外部配置文件中讀取並分配密碼來完成。

我不知道有一種方法可以從現有服務中檢索用戶憑據並分配它們。

+0

我能夠通過service1 [「Name」]獲取用戶名。從上面的代碼中,ToString()我試圖獲取&分配密碼,這樣我就可以避免彈出安裝時出現的問題。 – Sharpeye500 2012-04-27 21:12:32

+0

對不起,從service1 [「startname」]。ToString(); //用於用戶名 – Sharpeye500 2012-04-27 21:54:20