2011-06-01 69 views
4

我創建了一個C#Windows服務及其附帶的Visual Studio安裝項目,該工程創建一個安裝程序。它成功安裝了該服務。安裝Windows服務以使用ServiceAccount.User的用戶憑據運行,但不提示

當我從除ServiceAccount.User之外的枚舉ServiceAccount中選擇任何值時,服務將在不提示的情況下使用適當的內置用戶進行安裝。我之後實際上是在當前用戶的憑據下安裝服務。當我指定ServiceAccount.User時,安裝期間會提示用戶名和密碼。我需要做的是找到一種方法來使用運行安裝程序的用戶的憑據安裝服務,而不提示輸入密碼。

這是可能的嗎?我願意採取任何所需的措施(如負載P/Invoke)來完成工作。

+0

服務是做什麼的?如果它是每用戶服務,那麼使用任務調度機制或程序自動啓動可能是更好的選擇。 – 2011-06-01 10:29:14

+0

是的,你是對的。只有一種情況沒有被自動啓動覆蓋 - 如果程序需要運行,即使沒有登錄的用戶或者如果不同的用戶登錄,該怎麼辦?另外,我不確定任務調度和登錄用戶,但任務調度看起來並不合適,因爲應用需要連續運行而不是在指定時間開始。 – wpfwannabe 2011-06-01 12:11:39

回答

5

您不能,除非出現錯誤配置,您無法提取明文密碼,您需要設置該服務。請參閱this similar question

另外,一般來說,應該爲服務安裝一個獨立且唯一的帳戶,每個服務具有最低權限。

+1

謝謝!我儘可能多地想,但我想確保。 – wpfwannabe 2011-06-01 11:06:14

1

這是不可能的,正如其他人所建議的。即使從服務管理器中,您想要在某個其他帳戶下運行服務(即使它是當前用戶帳戶),也會要求您再次輸入密碼。

相關問題